gpt4 book ai didi

mysql - 基于条件的不同sql 超过两列

转载 作者:行者123 更新时间:2023-11-29 16:31:15 24 4
gpt4 key购买 nike

下面是表结构。第一列包含可能出现在多行中的字符串。我想以这样的方式编写一个查询:column1 值仅重复一次,以便column2 包含 A 的行优先。如果只有 B 可用,输出相同。此外,还需要打印相关的column3。如果 Column1 和 Column2 中有多个行具有相同的值,请选择任意一行(例如:下面的第 2 行和第 3 行)。

下面提供了示例数据和预期的 SQL 输出。

表结构(还有其他列,此处跳过)

Column1 Column2 Column3
123 A 1
234 A 1
234 A 4
234 B 2
435 A 2
536 B 1

SQL 预期输出

Column1 Column2 Column3
123 A 1
234 A 1
435 A 2
536 B 1

注意:这是此问题的扩展 Distinct sql based on condition

最佳答案

你可以试试这个:

SELECT   tab.Column1,
tab.Column2,
MIN(tab.Column3)
FROM (SELECT Column1,
MIN(Column2) as min_column2
FROM tab
GROUP BY Column1
) t
JOIN tab
ON tab.Column1 = t.Column1
AND tab.Column2 = t.min_column2
GROUP BY tab.Column1,
tab.Column2;

它是简单的 ANSI-SQL,不依赖于您的数据库或其版本。

关于mysql - 基于条件的不同sql 超过两列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53865363/

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