Mysql
 sql >> база данни >  >> RDS >> Mysql

как да получите отделни редове с максимална стойност

SELECT id, authorId, answer, votes
FROM (  SELECT id, authorId, answer, votes
        FROM answers
        ORDER BY votes DESC) AS h
GROUP BY authorId

Този малък чист трик е изграден въз основа на GROUP BY за да извлечете първия ред от всеки случай. Обикновено това е по подразбиране ORDER BY id ASC , но чрез тази подзаявка, първият ред във всеки authorId с най-много votes .

Забележка: Както беше споменато от Iain Elder, това решение не работи с ONLY_FULL_GROUP_BY активен и работи само в MySQL. Това решение до известна степен не се поддържа поради липса на документация, потвърждаваща това поведение. Работи добре за мен и винаги ми е работил добре.

Този метод все още работи с най-новия MySQL на sqlfiddle .



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. как да отрежете водещите нули от буквено-цифров текст във функцията mysql

  2. MySQL Workbench не показва резултати от заявка

  3. Symfony2 връща празен JSON при извикване на AJAX, докато променливата не е празна

  4. Асинхронно репликация Автоматично отказване в MySQL 8.0.22

  5. Escape низ за използване в MySQL пълнотекстово търсене