SQL计数和基于值的分组

时间:2014-02-25 21:43:38

标签: sql count

这是我的源数据:

Point | Status

P1    |  caution

P1    |  normal

P1    |  normal

P2    |  caution

P2    |  caution

P2    |  caution

我正在尝试编写一个将输出的查询:

P1, caution, 1

P1, normal, 2

P2, caution, 3

3 个答案:

答案 0 :(得分:1)

我认为这将是以下内容:

SELECT P_COLUMN, STATUS_COLUMN, COUNT(*) FROM TABLE_NAME GROUP BY P_COLUMN, STATUS_COLUMN;

由于没有提供表格或列名称,我做了最好的猜测。

答案 1 :(得分:1)

更像是:

SELECT point, status, COUNT(*) FROM TABLE_NAME GROUP BY point, status;

status列必须是group by子句的一部分。否则,如果没有聚合函数,它就不能成为select语句的一部分...

答案 2 :(得分:1)

感谢您的帮助!我也是另辟蹊径的:

  

选择    点,

     

SUM(状态=正常时的情况,然后是1,结束0结束)AS正常,

     

SUM(状态= Cation THEN 1 ELSE 0 END时的情况)AS警告

     

这      表

     

GROUP BY      点