gpt4 book ai didi

Mysql - GROUP_CONCAT - 其他/合并列的控制顺序

转载 作者:行者123 更新时间:2023-11-29 02:12:00 24 4
gpt4 key购买 nike

给定一个这样的表:

id     number     anotherNumber
1 1 10
2 1 20
3 2 20
4 2 10
5 3 10

如果我运行查询:

Select *, GROUP_CONCAT(number)
FROM docs
GROUP BY number

我会得到:

id  number  anotherNumber   GROUP_CONCAT(number)
1 1 10 1,1
3 2 20 2,2
5 3 10 3

see sql fiddle

但是我想得到:

id  number  anotherNumber   GROUP_CONCAT(number)
1 1 20 1,1
3 2 20 2,2
5 3 10 3

基本上,我希望 anotherNumber 列中的数字按 DSEC 顺序排序 - 它应该始终是最高的。

我知道你可以放一个 ORDER BYin the GROUP_CONCAT但这只会影响串联值,而不影响“合并值”。那么有没有简单的方法呢?

最佳答案

你可以使用:

Select MIN(id) AS ID, number, MAX(anotherNumber) AS anotherNumber,
GROUP_CONCAT(number)
FROM docs
GROUP BY number;

SQLFiddle Demo

您应该始终使用聚合函数包装未在 GROUP BY 中指定的列(除非它们在功能上依赖于 GROUP BY 列并且您的 RDBMS 支持 ANSI-99 Optional feature T301, Functional dependencies )

关于Mysql - GROUP_CONCAT - 其他/合并列的控制顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49466181/

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