我有一个充满媒体的数据库。为了简单起见,可以说它具有

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


如果出现平局,每所大学将返回多篇文章。我不管你是否想要。

09-17 05:12