gpt4 book ai didi

mysql - 按列分组后获取mysql中最大的年份值

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

下表包含一个id和一个YearGroups

     GroupingTable
id | Year | Groups
1 | 2000 | A
2 | 2001 | B
3 | 2001 | A

现在我想选择最好的年份,即使是在按Groups 列分组之后也是如此

   SELECT 
id,
Year,
Groups
FROM
GroupingTable
GROUP BY
`Groups`
ORDER BY Year DESC

下面是我所期待的,即使上面的查询没有按预期工作

     id       |    Year    |   Groups    
2 | 2001 | B
3 | 2001 | A

最佳答案

您需要学习如何使用 aggregate functions .

SELECT 
MAX(Year) AS Year,
Groups
FROM
GroupingTable
GROUP BY
`Groups`
ORDER BY Year DESC

当使用 GROUP BY 时,只有您分组的列是明确的,因为它们在组的每一行上都具有相同的值。

其他列从组中的某一行中任意返回一个值。实际上,这是 MySQL(和 SQLite)的行为,但由于歧义,它在标准 SQL 和所有其他品牌的 SQL 实现中都是非法查询。

有关这方面的更多信息,请参阅我对 Reason for Column is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause 的回答

关于mysql - 按列分组后获取mysql中最大的年份值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39987928/

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