分组排序

时间:2014-07-12 17:46:00

标签: mysql

假设我有一个包含列的表:A,B,C,D ......

我希望选择并按A分组,同时确保B在A中具有最大值。

部分查询是:

SELECT C, .. from table where D=x GROUP BY A ...

例如:

A   |   B  |  C  | ...
------------------
1   |   3  |  data1
1   |   2  | data2
2   |   5  | data3
2   |   1  | data 4

我希望选择行(1,3,data1,...)和(2,5,data3,...)。

更多信息:我在(D,A,B)上定义了索引

查询应该是什么样的?

1 个答案:

答案 0 :(得分:0)

您可以使用

获得结果
SELECT 
    e1.*
FROM
    example7 e1
WHERE
    e1.b = (
    SELECT
        MAX(e2.b) 
    FROM
        example7 e2
    WHERE
        e2.a = e1.a
    GROUP BY
        e2.a    
) 

<强> DEMO