Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql SQL分组依据和订单依据问题_Mysql_Sql - Fatal编程技术网

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(添加时)它应该是什么用户?有吗?事实上,不管我怎么说,我已经在加入中获得了信息!啊!无论如何,非常感谢你的帮助,非常感谢。