所以我目前有下表:
REF| STATUS
OP1|0
OP2|2
OP2|4
OP2|5
OP3|7
OP3|6
如您所见,OP2 有 3 个雕像,OP3 有 2 个状态。 我正在尝试归档以下内容:
REF| STATUS | COUNT
OP1|0 |1
OP2|2 |3
OP2|4 |3
OP2|5 |3
OP3|7 |2
OP3|6 |2
计数是每个引用的状态数。
我提供了一个 SQL 但不确定我哪里出了问题?
SELECT ref,STATUS, (SELECT COUNT(STATUS) FROM orders WHERE STATUS > 0 GROUP BY ref)
FROM orders
我正在使用 SQL Server 2008。
最佳答案
使用COUNT() OVER()
SELECT ref,STATUS, COUNT(*) OVER(PARTITION BY REF1)
FROM orders
要获取status > 0 的计数,可以将上面的查询更改为
SELECT ref,STATUS, COUNT(CASE WHEN STATUS>0 THEN 1 END) OVER(PARTITION BY REF1)
FROM orders
关于sql - 在 SQL 的单独列中获取计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43070819/