@dg25

2 строки с одинаковым ID, вернуть строку у которой значение 'votes' больше чем у второй?

В таблице много парных строк с одинаковым POLL_ID. Например:
633839d84bc71755299839.jpeg

Нужно вернуть из каждой пары строк одну строку, у которой значение votes больше. Из этого примера должны вернуться следующие строки:

63383a0436295411198565.jpeg

Строка должна содержать все имеющейся колонки. Я пытался сгруппировать 'GROUP BY POLL_ID' 2 строки а затем вернуть значение 'MAX(votes)' но результат выдачи был неправильный. Прошу помочь написать правильный запрос, спасибо!
  • Вопрос задан
  • 80 просмотров
Решения вопроса 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
WITH `cte` AS (
  SELECT `ID`, `POLL_ID`, `VOTES`, `NAME`,
         ROW_NUMBER() OVER (PARTITION BY `POLL_ID` ORDER BY `VOTES` DESC) AS `row`
  FROM `table`
)
SELECT `ID`, `POLL_ID`, `VOTES`, `NAME`
  FROM `cte`
  WHERE `row` = 1
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы