嗨所以我试图用最多AB(跑步)的球员输出城市。
输出蝙蝠(AB)中玩家最多的出生城市 他的职业生涯。
现在我得到了我想要的Cinncinati,sander01,14432,这是正确的。但它出现在3个像这样的东西。对于每个城市和球员而言,这也是第二位的。我只需要1个条目,另外2个是冗余的。我觉得有什么我做错了小组,有什么帮助吗? PLZ
Cinncinati, sander01, 14432
Cinncinati, sander01, 14432
Cinncinati, sander01, 14432
Chicago, dere90, 12324
Chicago, dere90, 12324
Chicago, dere90, 12324
SELECT a.bcity,a.id, b.ab FROM master a
JOIN
(SELECT id, SUM(ab) as ab FROM batting
GROUP by id) b
ON a.id = b.id
ORDER by b.ab DESC
limit 30;
答案 0 :(得分:1)
有关获取不同结果集的信息,请参阅DISTINCT。现在回答您的问题,使用结果集b中的顶行连接主表。
select a.bcity,b.id,b.ab from master a
join
(select id,sum(ab) as ab from batting
group by id
order by ab desc
limit 1
) b
on a.id = b.id
您可以将LIMIT 30更改为LIMIT 1并获得相同的结果。
SELECT a.bcity,a.id, b.ab FROM master a
JOIN
(SELECT id, SUM(ab) as ab FROM batting
GROUP by id
) b
ON a.id = b.id
ORDER by b.ab DESC
limit 1;
注意:如果有多个玩家的跑步次数相同,那么LIMIT 1将无法给出正确答案。