Mysql SQL分组依据和订单依据问题
假设我有一个表-任务-包含以下数据:Mysql SQL分组依据和订单依据问题,mysql,sql,Mysql,Sql,假设我有一个表-任务-包含以下数据: 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
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,只按日期顺序显示结果,我会得到一些group by上没有显示的结果,这意味着任务以前已经完成了,但它似乎是按最早的日期分组的,我希望最新的日期在列表的顶部
希望这是有意义的……有可能通过订单影响团队吗?这就是你想要的吗
select task, group_concat(user), max(when_added)
from tasks
group by task
order by when_added desc
分组依据
是一个聚合函数。在MySQL中,您可以选择不聚合列,但不应该这样做
如果按列分组,则该列的结果将不同,所有其他数据将围绕该列分组。因此,例如,
task
在run
中可能有多个数据。仅选择其他列将选择一个随机结果。您应该从该组中选择一个特定的结果,如max
或min
或sum
或将它们串联起来。非常感谢!那种作品。。。除了用户字段外,它还可以工作。每次执行任务时,都会有一个相同用户id的大量字符串,我需要一个单一的用户id,这样我就可以从另一个表中通过连接提取用户详细信息。固定-只需调用用户两次-因此,选择task,group_concat(用户)as Error,user as correct,max(添加时)它应该是什么用户?有吗?事实上,不管我怎么说,我已经在加入中获得了信息!啊!无论如何,非常感谢你的帮助,非常感谢。