需要按 mysql 中的数据分组

need group by data in mysql

在mysql中:

数据中有数据:

ColA | ColB | Rank
1      2      0
1      3      1
2      1      0
3      1      0
3      2      1

将 Col A 保留为关键字段,需要根据最高排名获取数据,即, 输出:

ColA | ColB | Rank
1      3      1
2      1      0
3      2      1

任何想法..

你可以这样做:

SELECT T1.ColA, T2.ColB, T1.Rank
FROM TableName T2 JOIN
(SELECT ColA,MAX(Rank) as Rank
FROM TableName 
GROUP BY ColA) T1 ON T1.ColA=T2.ColA AND T1.Rank=T2.Rank

解释:

  1. 内部查询 (T1) selects 个记录,每个值 ColA.
  2. 的排名最高
  3. 外部查询 (T2) 用于 select ColB 关于 ColA 的值和来自 T2 的排名。

结果:

ColA    ColB    Rank
--------------------
1       3       1
2       1       0
3       2       1

SQL Fiddle

中查看结果