gpt4 book ai didi

mysql - mysql select查询中使用IF改变WHERE子句

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

我需要在这样的表上创建一个选择语句:

id  rank name  city
34 0 adm TO
44 0 sas BA
44 1 wqe BS
92 0 adm TO
92 1 ter BO
92 2 ter BO
92 3 ter RM

我想要选择的是计算排名 > 0 的行数,但仅限于具有多个排名值的 id。对于那些只有一条记录的 id,因此排名为 0,那么我想选择该记录。如果我使用:

SELECT id, count(rank) as t 
FROM mytable
WHERE rank > 0
GROUP BY id

然后,例如,我省略 id=34

我的最佳结果集是:

id  t
34 1
44 1
92 3

关于如何完成此任务有任何提示吗?

最佳答案

您可以使用类似以下内容:

SELECT id,
CASE
WHEN cntNonZero = 0 THEN cntZero
ELSE cntNonZero
END AS t
FROM (
SELECT id,
COUNT(CASE WHEN rank > 0 THEN 1 END) AS cntNonZero,
COUNT(CASE WHEN rank = 0 THEN 1 END) AS cntZero
FROM mytable
GROUP BY id ) s

Demo here

关于mysql - mysql select查询中使用IF改变WHERE子句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31436795/

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