gpt4 book ai didi

mysql - 如何判断一个值是否出现在 GROUP BY 组中

转载 作者:可可西里 更新时间:2023-11-01 06:31:43 24 4
gpt4 key购买 nike

给定表 foo:

Num   Letter
------------
1 A
1 B
1 B
2 C
3 A
3 C
3 D

如果我执行 SELECT * GROUP BY Num 我当然会得到这样的结果:

Num   Letter
------------
1 A
2 C
3 A

我想将其改进为:

Num   Has_No_Letter_C
---------------------
1 Yes
2 No
3 No

可能有一个简单的 SELECT IF () 加上一个 ORDER BY,但我现在看不到...

在我的真实示例中,结果表被 LEFT JOIN 编辑到另一个表,我希望能够拒绝 No 条目但保留 NULL 如果我的其他表 bar 有一个 Num = 4 行。

最佳答案

IF 中使用 SUM(condition):

SELECT   Num,
IF(SUM(Letter = 'C'), 'Yes', 'No') AS Has_Letter_C
FROM my_table
GROUP BY Num

您的 JOIN 将变为:

SELECT   another_table.Num
FROM another_table LEFT JOIN my_table ON another_table.Num = my_table.Num
GROUP BY another_table.Num
HAVING my_table.Num IS NULL OR SUM(my_table.Letter = 'C') > 0

关于mysql - 如何判断一个值是否出现在 GROUP BY 组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10545932/

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