SQL查询按特定列的时间计算

Nic*_*nas 0 sql sql-server

好的我正在使用MS SQL,我有一个表格,其值如下:

ID     Date     Radio     Time
111    4/1/09    1        3:00:00
111    4/1/09    2        4:00:00
111    4/1/09    3       14:00:00
111    4/1/09    1       15:00:00
111    4/1/09    3       16:00:00
222    4/1/09    2        2:00:00
222    4/1/09    1        5:00:00
222    4/1/09    1       19:00:00
333    4/1/09    1        3:00:00
333    4/1/09    2        5:00:00
333    4/1/09    2        13:00:00
333    4/1/09    3        17:00:00
Run Code Online (Sandbox Code Playgroud)

好的,我需要一个查询,其中:

window 1 < 12:00
13 < window 2 < 15:00
window 3 > 16:00
Run Code Online (Sandbox Code Playgroud)

要返还金额:

           Window1     Window2    Window3  
Radio 1:     3           0          2
Radio 2:     3           1          0
Radio 3:     0           1          2         
Run Code Online (Sandbox Code Playgroud)

我已经尝试过使用count()但是我无法在正确的'收音机'上正确加入这些任何建议吗?

Joe*_*orn 8

SELECT [Radio],
    SUM(CASE WHEN [Time] < 12 THEN 1 ELSE 0 END) AS Window1,
    SUM(CASE WHEN [Time] >= 12 AND [TIME] < 15 THEN 1 ELSE 0 END) AS Window2,
    SUM(CASE WHEN [Time] >= 16 THEN 1 ELSE 0 END) AS Window3
FROM [Table]
GROUP BY [Radio]
Run Code Online (Sandbox Code Playgroud)

适当调整<=/<和> = />; 你在这一点上并不是很具体.

另外,你的第一个条件是window 1 > 12.我假设你的意思window 1 < 12.