SQL - GROUP BY和ORDER BY MIN

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL - GROUP BY和ORDER BY MIN相关的知识,希望对你有一定的参考价值。

我有桌面球员的结果:

id | id_user | timems | status | cancel

玩家在开始游戏时选择两种状态:1或2。我列出最佳时间排名:

SELECT *, MIN(timems) AS besttime 
FROM `wyniki` 
WHERE NOT cancel=1 
GROUP BY id_user 
ORDER BY MIN(timems) ASC

这是有效的,但我不知道'状态'的最佳时间是什么。

答案

此查询容易出错

你可以这样做

SQL查询:

SELECT id_user, status , MIN(timems) AS besttime FROM `wyniki` 
WHERE NOT cancel=1 GROUP BY id_user, status ORDER BY MIN(timems) ASC
另一答案
SELECT id_user, 
       MIN(case when status = 1 then timems else null end) AS best_time_1,
       MIN(case when status = 2 then timems else null end) AS best_time_2
FROM wyniki 
WHERE cancel <> 1 
GROUP BY id_user 
ORDER BY MIN(timems) ASC

以上是关于SQL - GROUP BY和ORDER BY MIN的主要内容,如果未能解决你的问题,请参考以下文章

sql语句执行顺序之group by、order by

SQL语句中,如果有group by 和order by两个语句,是先分组还是先排序?

SQL中,group by 跟order by有什么区别?

SQL中的group by语句和order by语句怎么用?最好能有个例子

SQL语句中,如果有group by 和order by两个语句,是先分组还是先排序?

sql语句 group by和order by