gpt4 book ai didi

mysql - 根据 group_concat 中 min、max 的差异查询获取项目

转载 作者:行者123 更新时间:2023-11-29 09:59:54 24 4
gpt4 key购买 nike

假设我有以下条目:

 ID    Title       Year
1 Avatar 2009
2 Avatar 2020
3 Hello 2014
4 Hello 2013
5 New 2017

以下是我如何获得每个标题及其所有年份:

SELECT title, GROUP_CONCAT(DISTINCT Year) FROM table

它会给我:

Title        Years
Avatar 2009,2020
Hello 2013,2014
New 2017

我将如何执行查询来获取最小值(年份)距最大值(年份)超过 5 年的所有结果。正确的结果将是:

Title       Years       > 5 Year Diff
Avatar 2009,2020 YES
Hello 2013,2014 NO
New 2017 NO

最佳答案

您的第一个查询是错误的。应该是:

SELECT title, GROUP_CONCAT(DISTINCT Year)
FROM table
GROUP BY title;

实现你想要的只是一个CASE表达式:

SELECT title, GROUP_CONCAT(DISTINCT Year),
(CASE WHEN MAX(YEAR) - MIN(YEAR) > 5 THEN 'YES' ELSE 'NO' END) as flag
FROM table
GROUP BY title;

通常,这样的标志会被编码为“1”表示 true,“0”表示 false。在这种情况下,您只需使用标志的 bool 表达式:

SELECT title, GROUP_CONCAT(DISTINCT Year),
(MAX(YEAR) - MIN(YEAR) > 5) as flag
FROM table
GROUP BY title;

请注意,此用法是 MySQL 扩展(但它恰好是我喜欢的扩展)。

关于mysql - 根据 group_concat 中 min、max 的差异查询获取项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53216959/

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