Выбор максимального значения одного столбца, группировка по другому не работает - PullRequest
0 голосов
/ 15 ноября 2011

У меня есть база данных, полная медиа.Для простоты, скажем, у него есть

Table: media

id
college_id
title
shares

Я пытаюсь получить статьи с наибольшим количеством акций от каждого колледжа.Итак, по сути, получите верхнюю общую статью от Cornell, USC, Syracuse.

Я использовал эту команду SQL, но она не возвращает наиболее общую статью из каждого колледжа.*

У кого-нибудь есть идеи?

Столбец акций - это целое число, указывающее количество акций.

Ответы [ 3 ]

4 голосов
/ 15 ноября 2011
    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

Это вернет более одной статьи на колледж в тех случаях, когда есть связь. Я не хочу, хотите ли вы этого или нет.

0 голосов
/ 15 ноября 2011

Вы ищете ключевое слово MAX sql

В MSSQL это прекрасно работает

SELECT college_id, 
       Max(shares) 
FROM   media 
GROUP  BY college_id
0 голосов
/ 15 ноября 2011

Если мы предположим, что столбец акций обрабатывает запрос количества акций, будет

SELECT title, 
       Max(shares) AS max 
FROM   media 
GROUP  BY college_id 
ORDER  BY max DESC 

Но если мы предположим, что столбец акций является идентификатором или sth, запрос будет

SELECT title, 
       COUNT(shares) AS COUNT 
FROM   media 
GROUP  BY college_id 
ORDER  BY COUNT DESC 

Предлагаю вам в следующий раз дать более подробную информацию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...