简体   繁体   English

MySQL的不同或分组

[英]mysql distinct or group by

SELECT DISTINCT(player2) FROM logs 
WHERE player1=3 
ORDER BY time DESC

Would it be possible to return other non-distinct cols with that query? 可以通过该查询返回其他非不同的列吗?

Or my other solution: 或者我的其他解决方案:

SELECT * FROM logs 
WHERE player1=3 
GROUP BY player2 ORDER BY time DESC

This works fine but it does not order properly. 这可以正常工作,但订购不正确。 It picks the first one of the group. 它选择该组中的第一个。

Table example: 表示例:

player1 player2 time
3        5        1
3        5        2
3        6        3

I would expect it to return: 我希望它会返回:

player2 time
5        2
6        3

But it returns (with group by): 但它返回(与分组依据):

player2 time
5        1
6        3

Try this: 尝试这个:

SELECT player2, MAX(time) AS time
  FROM logs 
 WHERE player1=3 
 GROUP BY player2 
 ORDER BY time DESC
SELECT player2, max(`time`) as max_time
FROM logs 
WHERE player1 = 3 
GROUP BY player2 
SELECT player2, MAX(time) AS time   
FROM logs   
WHERE player1=3  
GROUP BY player2   
ORDER BY MAX(time) 

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM