我有一个充满媒体的数据库。为了简单起见,可以说它具有
Table: media
id
college_id
title
shares
我正试图从每所大学获得最多份额的文章。因此,从本质上讲,可以从Syracuse的USC康奈尔大学获得最受欢迎的共享文章。
我一直在使用此SQL命令,但它不会返回每个学院共享最多的文章。
SELECT *
FROM media
GROUP BY college_id
ORDER BY shares DESC
有人有想法么?
份额栏是一个整数,指示份额数。
最佳答案
SELECT top 1 * from media group by college_id order by shares desc
那是我的第一个念头……尽管我想知道我是否缺少某些东西,因为这个答案比亚当的答案简单得多。如果共享是共享的次数,尽管这听起来像您要查找的内容。
编辑:我现在看到了。这是另一种方式
select m1.id, m1.college_id, m1.title, m1.shares
from media m1 join
(
select college_id, max(shares) max_shares
from media
group by college_id
) m2 on m1.college_id = m2.college_id and m1.shares = m2.max_shares
如果出现平局,每所大学将返回多篇文章。我不管你是否想要。