2017-02-18 8 views
0

これは初めてSQLを使って作業していて、2つの時間枠のUberデータセットから乗り物の総数を決定する方法を理解しようとしています " 30:00:00:30:00」、「09:30:00」、「夜間ラッシュアワー」、「16:30:00」、「19:30:00」の間に「朝のラッシュアワー」を表示します。同じテーブルの1つの列から2つのカウントをコーディングしようとしています

私は1つのテーブルにrecord_id、Pickup_date、Pickup_date、lat、lon、&ベースの6つのカラムを持っていますが、両方のラッシュアワーの合計カウントを返す必要があります。朝のラッシュは次のとおりです。

SELECT COUNT(*)Total_AM_Rush_Hour_Pickups
AS uber_data_sep2014 FROM GROUP BY Pickup_time は'06 BETWEEN Pickup_timeをHAVING:30:00' AND '09:30:00' ;

しかし、同じ値の3行を返します...そして、私は第2の部分を追加する方法を理解できません - 助けてください!

+0

グループを削除します。その時間枠内のすべての数をカウントしたい場合は、それらを特定の時間でグループ化する必要はありません。 –

+0

私はすべてを数えたいと思う - しかし、2つの時間枠 - 6:30 am-9:30amと4:30 pm-7:30pm –

答えて

0

CASE文を使用して2つの異なるカウンタを作成しようとしましたか?

SELECT SUM(CASE WHEN Pickup_time BETWEEN '06:30:00' AND '09:30:00' THEN 1 ELSE 0 END) AS MorningCount, 
SUM(CASE WHEN Pickup_time BETWEEN '16:30:00' AND '19:30:00' THEN 1 ELSE 0 END) AS EveningCount 
FROM uber_data_sep2014 
+0

私はCASE文を学んでいないが、これを試してみることができる。 –

+0

残念ながら出力が表示されている両方の時間枠の正確な合計があります - 可能な方法はありません。 –

+0

Pickup_time列にデータがどのように見えるかを詳しく調べる必要があります。おそらく、時間変換には常に「真実」を返すものがあります。データがどのように見えるかを知ることで、元のクエリが3行しか戻っていない理由について私の好奇心にも答えることができます。例について – Mary

関連する問題