gpt4 book ai didi

sql - 如何根据组内的字符串值选择属性

转载 作者:搜寻专家 更新时间:2023-10-30 19:45:20 26 4
gpt4 key购买 nike

表名:副本

+------------------------------------+
| group_id | my_id | stuff |
+------------------------------------+

| 900 | 1 | Y |
| 900 | 2 | N |
| 901 | 3 | Y |
| 901 | 4 | Y |
| 902 | 5 | N |
| 902 | 6 | N |
| 903 | 7 | N |
| 903 | 8 | Y |
---------------------------------------

输出应该是:

+------------------------------------+
| group_id | my_id | stuff |
+------------------------------------+
| 900 | 1 | Y |
| 903 | 8 | Y |
--------------------------------------

你好,我有一个表,我必须根据 stuff 字段中的正 (Y) 值来辨别 group_id 中的“好”记录。我需要只有一个值符合此条件的完整记录。如果两个填充值都是 Y 或都为 N,则不应选择它们。看起来这应该很简单,但我不确定如何进行。

最佳答案

此处的一个选项是对每个 group_id 使用条件聚合,并保留一个包含是和否混合答案的组。

WITH cte AS (
SELECT group_id
FROM Copies
GROUP BY group_id
HAVING SUM(CASE WHEN stuff = 'Y' THEN 1 ELSE 0 END) > 0 AND
SUM(CASE WHEN stuff = 'N' THEN 1 ELSE 0 END) > 0
)

SELECT c1.*
FROM Copies c1
INNER JOIN cte c2
ON c1.group_id = c2.group_id
WHERE c1.stuff = 'Y'

此解决方案的一个优点是它将显示匹配记录的所有 列。

关于sql - 如何根据组内的字符串值选择属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40508639/

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