gpt4 book ai didi

mysql - SQL 分组依据和排序依据问题

转载 作者:行者123 更新时间:2023-11-29 14:13:17 25 4
gpt4 key购买 nike

假设我有一个表 - 任务 - 包含以下数据:

task    user     when_added
---------------------------
run 1 2012-08-09
walk 2 2012-08-07
bike 2 2012-08-07
car 1 2012-08-06
run 2 2012-08-06
car 1 2012-08-05
bike 1 2012-08-04
run 1 2012-08-04

如您所见,任务是重复的。

问题是,当我显示数据时,例如

select * from tasks group by task order by when_added desc

小组如何影响结果? “group by”是否可以按任何顺序对它们进行分组,我可以做到吗?

我问的原因是我有一个大表,我显示上面的数据,如果我丢失分组依据并仅按日期顺序显示结果,我会得到一些不显示在分组依据上的结果,这意味着任务之前已经完成,但它似乎是按最旧的日期分组的,我希望最新的日期位于堆栈的顶部。

希望这是有道理的...是否有可能按顺序影响小组?

最佳答案

这就是你想要的吗?

select task, group_concat(user), max(when_added)
from tasks
group by task
order by when_added desc

group by 是一个聚合函数。在 MySQL 中,您可以选择无论如何都不聚合列,但您不应该这样做。

如果按列分组,则该列的结果将是不同的,并且所有其他数据将围绕该列分组。因此,例如,可能存在多个数据,其中 taskrun。只需选择其他列就会选择一个随机结果。您应该从该组中选择一个特定结果,例如 maxminsum 或将它们连接起来。

关于mysql - SQL 分组依据和排序依据问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13108719/

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