2017-03-08 19 views
0

日付範囲に基づいてIDの出現回数を返し、2つの(オカレンス)値の間でグループを返そうとしています。日付範囲に基づく出現間のSQLリターンカウント

データは、このような単純です:私はこのようなルックスを実現しようとしています

Date | ID 

結果:

発生回数は、IDが2つの値の間を示した回数である
DateRange | Occurrence-Count-1to2-Times | Occurrence-Count-3to5-Times | Occurrence-Count-6to10-Times | Occurrence-Count-Over10-Times 

。例えば1〜2回(指定された日付範囲に従う)。

ありがとうございます!

+2

サンプルデータと望ましい結果が役立ちます。 –

+0

サンプルデータと予想される出力を表示します。 \t [** How-to-Ask **](http://stackoverflow.com/help/how-to-ask) \t \t [**スタート**] (http://spaghettidba.com/2015/04/24/how-to-post-at-sql-question-on-a-public-forum/)質問品質を改善し、より良い回答を得る方法を学ぶことができます。しかし、私はあなたの将来のピボットを参照してください。 –

+0

どのDBMSを使用していますか? Postgres?オラクル? DB2?ファイアバード? –

答えて

2

あなたは集計の二つのレベルを行うことができます。

select date, 
     sum(case when cnt <= 2 then 1 else 0 end) then times_1_2, 
     sum(case when cnt > 2 and cnt <= 5 then 1 else 0 end) then times_3_5, 
     . . . 
from (select date, id, count(*) as cnt 
     from t 
     group by date, id 
    ) di 
group by date; 

私はあなたが「日付範囲」によって何を意味するかわからないんだけど、あなたはサブクエリで範囲を定義し、中に集計のためにそれを使用することができ、両方のサブクエリと外部クエリ。

+0

それはまさに私が後にしたものです!私はちょうど日付範囲をソートする必要がありますので、日付範囲でグループ化し、日付ではグループ化しません。 – augr

+0

日付の2番目のグループを削除し、日付範囲の障害を解決しました。ありがとうゴードンLinoff! – augr

関連する問題