如何在GROUP BY中选择具有最大值的记录?

sur*_*190 1 mysql sql

嗨,我有一个重复id的表,链接不同的任务,每个完成级别显示如下:

id      date                    perc     taskid
4722    2007-11-08 16:20:14     0.00      3
4724    2007-11-20 15:32:40     25.71     5
4722    2007-11-08 16:20:14     0.00      8
4727    2008-01-29 10:19:39     0.00      18
4726    2008-01-28 11:44:50     7.14      13
4726    2008-01-28 11:44:50     34.29     90
4728    2008-02-11 13:14:14     2.86      21
Run Code Online (Sandbox Code Playgroud)

我想以最高百分比返回不同的id ...即.

4722    2007-11-08 16:20:14     0.00      3
4724    2007-11-20 15:32:40     25.71     5
4727    2008-01-29 10:19:39     0.00      18
4726    2008-01-28 11:44:50     34.29     90
4728    2008-02-11 13:14:14     2.86      21
Run Code Online (Sandbox Code Playgroud)

我将使用GROUP BY我假设的,但我如何获得每列的最大值?

奖金...... date如果百分比相同,是否有可能进一步排序?

更新: 我希望具有最高百分比的taskid保留在记录中?

Adr*_*der 5

你在找吗?

SELECT id, date, MAX(perc) as MAX_PERC
FROM YourTable
GROUP BY id, date
Run Code Online (Sandbox Code Playgroud)

条目之间的日期可能会有所不同吗?或者他们总是在同一个约会?

如果是这样,您可能需要查看"按行保持某个列的组最大值"的行