SQLServer 2008r2の使用 - 毎時レコードが挿入されたテーブルがあります。私のクエリの関連する列は、currentScore(int)とobsDate(smallDateTime)です。私は1日に5つのレコードをグループ化したい。今日、今日の2日前(深夜から)と2日後日ごとのグループ化と条件付きカウントの問題
theDate numOfScores
2017-06-18 00:00:00.000 23
2017-06-19 00:00:00.000 22
2017-06-20 00:00:00.000 24
2017-06-21 00:00:00.000 24
2017-06-22 00:00:00.000 9
私がしたい:そうは次のように私のレコードセットが見えます
select dateadd(DAY,0, datediff(day,0, obsDate)) as theDate,
count(currentScore) as numOfScores
from diseaseScores
where siteID=8315 and obsDate > dateAdd(day, -2, (SELECT CONVERT(DATETIME,
CONVERT(DATE, CURRENT_TIMESTAMP)) + '00:00'))
group by dateadd(DAY,0, datediff(day,0, obsDate))
order by dateadd(DAY,0, datediff(day,0, obsDate))
:SOその6月20日は、私は成功しそうのようにこれをやっている6月18日、19、20、21と22をしたい場合特定の範囲内のcurrentScoreの数を数える3つの列を追加します。このようなもの
CASE
WHEN currentScore < 8 THEN COUNT(where currentScore < 8) as Low
WHEN currentScore > 8 and < 17 THEN COUNT(where currentScore > 8 and < 17) as Med
WHEN currentScore > 17 THEN COUNT(where currentScore > 17) as High
私はこれを選択したケースで行うことはできますか?これを達成する最良の方法は何ですか?
theDAte numOfScores low med high
2017-06-18 23 23 0 0
2017-06-19 22 22 0 0
2017-06-20 24 5 19 0
2017-06-21 24 0 24 0
2017-06-22 9 0 9 0
質問を編集し、達成したい結果を表示してください。 –