数据表大概是以下这样,表头分别是(id,企业id,客户名称,交易金额)
id | e_id | cus_name | amount |
---|---|---|---|
1 | 1 | A | 10 |
2 | 1 | B | 50 |
3 | 2 | C | 30 |
4 | 2 | D | 20 |
5 | 3 | E | 10 |
现在想查询每个企业的最大交易金额的客户,预期结果如下:
1 | B |
2 | C |
3 | E |
现在能想到的一个写法是:
select A.e_id,B.cus_name from (select e_id,max(amount) amt from table group by e_id) A left join table B on A.e_id=B.e_id and A.amt=B.amount
但是感觉比较麻烦,有什么更好的思路吗?
做完才发现跟你的方案一样 :(, 貌似常规做法就是这样吧?