在SQL中使用循环来填充表(SQL Server)

0 sql sql-server loops

我是新的SQL和循环特别需要一些帮助解决以下问题.

我有这样一张桌子:

SpotID EventID MaxTemp

123    1  45
236    1  109
69     1  18
123    2  216
236    2  29
69     2  84
123    3  91
236    3  457
69     3  280
Run Code Online (Sandbox Code Playgroud)

我想生成一个具有以下输出的新表:

SpotID Over30 Over70 Over100 

123    3      2      1
236    2      2      2  
69     2      2      1
Run Code Online (Sandbox Code Playgroud)

所以我所追求的是对于不同的EventID,温度超过每个SpotID的30,70和100的限制的次数.

有没有办法用循环来做到这一点?我的数据集显然更大,我很好奇我是否可以使用有效的东西.

非常感谢你.

麦克风

Gor*_*off 5

你只需要条件聚合:

select spotid,
       sum(case when maxtemp > 30 then 1 else 0 end) as over_30,
       sum(case when maxtemp > 70 then 1 else 0 end) as over_70
       sum(case when maxtemp > 100 then 1 else 0 end) as over_100
from likethis
group by spotid;
Run Code Online (Sandbox Code Playgroud)