如何解决使用其他数据获取最大值
| 我必须来问这个问题,因为我已经很生气,哭泣了,一切,因为这真的使我丧命。我讨厌SQL。但是必须这样做。网站使用SQL。 我有这些表(简化为必需的而不是真正的SQL):CREATE TABLE deliverer(d_id INT PRIMARY KEY,name VARCHAR(80));
CREATE TABLE article(a_id INT PRIMATY KEY,brand VARCHAR(80));
CREATE TABLE delivers(d_id FOREIGN KEY(deliverer),a_id FOREIGN KEY(article));
我需要每交付最多文章的brand
和deliverers
。经过两个小时的思考,我已经做到了:
SELECT brand,MAX(cnt)
FROM
(SELECT COUNT(a.a_id) AS cnt,a.brand,d.d_id,d.name
FROM derliverer d,delivers l,article a
WHERE a.a_id = l.a_id AND l.d_id = d.d_id
GROUP BY a.brand,d.name)
GROUP BY brand;
我真正,真正,真正不了解SQL的原因是为什么它不让我GROUP BY brand
和SELECT
6ѭ。真的没有道理。
在我跳出窗户之前,请帮助我。
解决方法
我真正,真正,真正不了解SQL的原因是为什么它不允许我GROUP BY品牌选择d.name d.d_id。真的没有道理。
因为如果这样做,该计数将针对每个不同的d.name,d.d_id。这不是您想要的。
您肯定想阅读一些有关group by工作原理的教程。
对于每个品牌,我需要那些提供最多文章的送货员。
在这种情况下,您需要以下内容:
select brand_id,count(*) as top_deliverer,deliverer_id,deliverer.etc.
from some stuff
group by brand_id,deliverere.etc
order by top_deliverer desc
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。