こんにちは。widget、action、timestamp_の列を持つ「widget」テーブルがあります。私たちがやりたいのは、特定の日付の間に1日に2回以上拒否されたすべてのウィジェットをプルすることです。これがテーブルの例です
widget action timestamp_
-------------------------------------------
type1 reject 2011-05-10 08:00:00
type1 reject 2011-05-10 09:00:00
type1 reject 2011-05-10 09:30:00
type2 reject 2011-05-11 09:30:00
type3 reject 2011-05-11 09:30:00
type1 reject 2011-05-11 09:30:00
type1 reject 2011-05-11 09:30:00
type2 reject 2011-05-12 10:30:00
type2 reject 2011-05-12 12:30:00
type3 reject 2011-05-12 12:30:00
ですから、この2つの方法のいずれかで結果を見たいと思っています。
日付xとyの間に、1日に複数回拒否された2つのウィジェットがありました
これにより、type1はtype2と同様に、1日に複数回拒否されたことがわかります。したがって、カウントは次のようになります。2
OR
各ウィジェットを、複数回拒否された日付と回数とともに表示します。例..
widget date count
---------------------------------
type1 2011-05-10 3
type1 2011-05-11 2
type2 2011-05-12 2
これはおそらく好ましい出力でしょう...しかしどのように?
前もって感謝します!
これにより、出力が得られます。
SELECT Widget, to_char(timestamp_,'YYYY-MM-DD'), Count(Widget)
FROM Widget
WHERE timestamp_ BETWEEN to_date('YYYY-MM-DD HH24:MI:SS','%date1%') AND to_date('YYYY-MM-DD HH24:MI:SS','%date2%')
AND action LIKE 'reject'
GROUP BY Widget, to_char(timestamp_,'YYYY-MM-DD')
HAVING Count(Widget) > 1;
もちろん、日付変数を置き換えることをお勧めします。
以下のものを試してみてください、あなたはあなたが望むものを手に入れるでしょう:-
Select widget,convert(varchar,[timestp],102) As Date,COUNT(timestp) as Count
From MTest
group by widget,[action],convert(varchar,[timestp],102)
having COUNT(timestp)>1