如何使用条件返回多个行计数?

时间:2019-08-08 17:53:23

标签: sql sql-server tsql

我有一个名为DT的数据库,其中有2列。

ID    IMP 

01    365
02    289
03    602
04    745
05    100
06    1
07    231
08    903
09    555
10    400

我想返回一个这样的表

NUM_ID_UNDER_300    NUM_ID_BETWEEN_301_AND_600   NUM_ID_ABOVE_601
        4                         3                      3            

有什么想法吗? 谢谢!

1 个答案:

答案 0 :(得分:1)

您可以照做

SELECT SUM(CASE WHEN IMP <= 300 THEN 1 ELSE 0 END) NUM_ID_UNDER_300,
       SUM(CASE WHEN IMP >= 301 AND IMP <= 600 THEN 1 ELSE 0 END) NUM_ID_BETWEEN_301_AND_600,
       SUM(CASE WHEN IMP >= 601 THEN 1 ELSE 0 END) NUM_ID_ABOVE_601
FROM
(
  VALUES
  (01,    365),
  (02,    289),
  (03,    602),
  (04,    745),
  (05,    100),
  (06,    1),
  (07,    231),
  (08,    903),
  (09,    555),
  (10,    400)
) T(ID, IMP);