gpt4 book ai didi

sql - 在 SQL 的单独列中获取计数

转载 作者:行者123 更新时间:2023-12-02 07:22:00 24 4
gpt4 key购买 nike

所以我目前有下表:

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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com