私はSQLで〜1500万レコードのデータセットをクエリしています。SQLでの複雑なグループ化
このようにデータをグループ化してソートしました。
TruckID RoadID Date Time I want this
Truck1 200 22-Jan-15 9:33:01 AM 1
Truck1 200 22-Jan-15 9:34:18 AM 1
Truck1 200 22-Jan-15 11:10:56 AM 2
Truck1 200 22-Jan-15 11:11:30 AM 2
Truck12 150 22-Jan-15 5:41:45 PM 1
Truck12 150 22-Jan-15 5:41:55 PM 1
Truck12 150 22-Jan-15 11:03:01 PM 2
Truck12 150 22-Jan-15 11:03:41 PM 2
Truck12 150 22-Jan-15 11:45:37 PM 3
Truck16 330 22-Jan-15 2:18:22 AM 1
Truck16 330 22-Jan-15 2:35:25 AM 2
Truck16 330 22-Jan-15 2:35:50 AM 2
Truck2 500 22-Jan-15 10:00:12 AM 1
Truck2 500 22-Jan-15 10:00:22 AM 1
Truck2 500 22-Jan-15 10:35:55 AM 2
Truck7 10 22-Jan-15 7:15:08 AM 1
Truck7 10 22-Jan-15 7:15:45 AM 1
Truck7 10 22-Jan-15 11:10:56 AM 2
Truck8 20 22-Jan-15 1:15:07 PM 1
Truck8 20 22-Jan-15 1:16:07 PM 1
Truck8 20 22-Jan-15 1:55:10 PM 2
Truck8 20 22-Jan-15 1:55:10 PM 2
私はI want this
フィールドに値を作成するためのSQLでの方法があるかどうかを知りたいです。ロジックは、同じRoadID上の同じTruckIDのTime
フィールドにタイムスタンプ間に2分(120秒)以上のギャップがある場合、そのTruckIDのI want this
フィールドに新しい値(1ずつ増分)を作成する必要があります-RoadIDグループ化。ありがとうございました。
どのDBMSを使用していますか? –
@a_horse_with_no_nameこのデータは、実際にはSpark RDDに格納されています。 SparkのSQL文脈を具体的に使用したい。 – dstar
'collect_list'を使って' explode'するのは、 'groupBy($" TruckID "、$" RoadID ")のようにする方が簡単です。 "、" Time "を" Time "と呼びます))をexplode($" datetimes "){...}'し、ロジックを '...'部分で行います。 –