gpt4 book ai didi

postgresql - 根据某些条件显示计数

转载 作者:行者123 更新时间:2023-11-29 13:05:06 24 4
gpt4 key购买 nike

几天前我问过一个问题。这是那个链接。 Count() corresponding to max()

现在用同一套表(SQL Fiddle)我想检查一个不同的条件

如果第一个问题是关于与状态最大值相关的计数,那么这个问题是关于根据每个项目的下一个状态显示计数。

解释

正如您在表 user_approval 中看到的,appr_prjt_id=1 有 3 个不同的状态,即 10、20、30。下一个状态将是40(每通过一次状态增加10)等等。那么是否可以显示有一个项目的状态是waiting to 40呢?它的计数只能显示在输出中对应于 40 的状态(而不是在状态 10、20、30 等中)

期望的输出:

              10   |    20  |  30   |   40

location1 0 | 0 | 0 | 1

最佳答案

不确定下一个状态将是 40 是什么意思。但假设每次批准状态都会增加 10,以下应该有效:

SELECT * 
FROM user_projects pr
WHERE EXISTS (
SELECT * FROM user_approval ex
WHERE ex.appr_prjt_id = pr.proj_id
AND ex.appr_status = 30
)
AND NOT EXISTS (
SELECT * FROM user_approval nx
WHERE nx.appr_prjt_id = pr.proj_id
AND nx.appr_status >= 40
);

关于postgresql - 根据某些条件显示计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15741191/

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