mysql - SQL从每个组中获取最大值

标签 mysql sql

<分区>

假设我有一张 table

table 上游戏

date     | track_id  | user_id | rating
-----------------------------------------
20170416 | 1         | 1       | 3  (***)
20170417 | 1         | 1       | 5
20170418 | 2         | 1       | 1
20170419 | 3         | 1       | 4
20170419 | 3         | 1       | 2  (***)
20170420 | 1         | 2       | 5

我想要做的是,对于每个唯一的 track_id、user_id,我想要评分最高的行。 IE。生成下表,其中删除了 (***) 行。

20170417 | 1         | 1       | 5
20170418 | 2         | 1       | 1
20170419 | 3         | 1       | 2
20170420 | 1         | 2       | 5

知道执行此操作的明智 SQL 查询是什么吗?

最佳答案

将 MAX 内置函数与 GROUP by 子句一起使用:

    SELECT track_id, user_id, MAX(rating)
    FROM Your_table
    GROUP BY track_id, user_id;

关于mysql - SQL从每个组中获取最大值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43448908/

相关文章:

sql - 如何在表格的每一列中获取 false 的数量?

sql - 按 T​​CP 地址划分的最大日期组

python - 是否可以将 session.insert 用于 SQLAlchemy 中的一对主要关系?

MySQL 组合(内连接和选择)效率

php - 如何在php中回滚上次执行的mysql查询的效果

php - MySQL 非常偶然 Unable save result set

SQL - 如何选择具有最大值的列的行

sql - 使用 T-SQL 查询 Active Directory

调查问卷的 MySQL 数据库结构

php - CodeIgniter Active Records 在子查询中的位置