МАКС (СУММА (голосов)) |получить только победителей - PullRequest
0 голосов
/ 12 июля 2011

Я хочу получить только победителей в таблице MySQL.

SELECT mayor_id, local_unit_id, Value FROM 
   (SELECT mayor_id,  local_unit_id, SUM(  `votes` ) AS  'Value' 
    FROM mayorresults 
    GROUP BY  `mayor_id`) AS t1
    ORDER BY  `t1`.`local_unit_id` ASC

Идея состоит в том, чтобы сначала суммировать голоса, а затем набрать только наибольшее число, в данном случае победителя.

С помощью этого запроса я могу получить всех, но не только победителей.

Я хочу получить MAX (SUM (голоса)), но это не работает так.

РЕДАКТИРОВАТЬ: я хочу получить победителей для каждого местного подразделения

например.

local_unit_id    mayor_id    votes
 1                25          8562
 2                534         18562

Ответы [ 2 ]

1 голос
/ 12 июля 2011

Обновление, после объяснений:

SELECT grp.local_unit_id, grp.mayor_id, grp.Value
FROM  
    ( SELECT  local_unit_id, mayor_id, SUM( votes ) AS Value 
      FROM mayorresults 
      GROUP BY local_unit_id, mayor_id
    ) AS grp
  JOIN
    ( SELECT local_unit_id, MAX(Value) AS Value
      FROM 
        ( SELECT  local_unit_id, mayor_id, SUM( votes ) AS Value 
          FROM mayorresults 
          GROUP BY local_unit_id, mayor_id
        ) AS grp
      GROUP BY local_unit_id
    ) AS grp2
    ON  grp2.local_unit_id = grp.local_unit_id
    AND grp2.Value = grp.Value
ORDER BY local_unit ASC
1 голос
/ 12 июля 2011

Вы пробовали:

SELECT mayor_id, local_unit_id, MAX(Value) FROM 
   (SELECT mayor_id,  local_unit_id, SUM(  `votes` ) AS  'Value' 
    FROM mayorresults 
    GROUP BY  `mayor_id`) AS t1
    ORDER BY  `t1`.`local_unit_id` ASC

Вы не можете иметь максимальное значение суммы.Вы можете иметь максимальную сумму подзапроса.

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