mysql 分组带出主键

来源:8-9 【实战】SQL改写优化

荔枝仔

2019-12-04

请教老师一个问题。A(主键) B(分组依据列) C(值列)三列 表ABC
select max© from abc group by b。

尝试过selelct a.* from abc a join (select b,max© mc from abc group by b) a1 on a.b=a1.b and a.c=a1.mc。但是因为分组后MAX©可能几个都是,导致结果不是预期。想问下老师有什么办法。非常感谢。

写回答

2回答

sqlercn

2019-12-04

没有看明白,你最终想要的结果是什么?如果按B列分组那么每一个不同的B值都会有一个max值这是正常的。

0
3
荔枝仔
回复
sqlercn
好的老师,已经解决了。情况是比如 | 1 | a | 10 | | 2 | a | 20 | | 3 | a | 20 |这样A组里面有2个最大值。我进行了2次分组。
2019-12-05
共3条回复

荔枝仔

提问者

2019-12-04

A    B    C    

1    a    10    

2    a    20    

3    a    15    

4    b    30    

5    b    25    

6    c    50    

7    c    60    

8    d    30    

假如原数据这样,想要按照B列分组,得到MAX(C)所在行的A值。

上面数据想要的结果是

A    B    C    

2    a    20    

4    b    30    

7    c    60    

8    d    30    


0
0

零基础入门 详解企业主流数据库MySQL8.0

掌握SQL优化与慢查询优化,具备独当一面的能力

1641 学习 · 485 问题

查看课程