Mysql
 sql >> Baza danych >  >> RDS >> Mysql

jak uzyskać różne wiersze o maksymalnej wartości

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

Ta mała zgrabna sztuczka jest zbudowana w oparciu o GROUP BY aby pobrać pierwszy wiersz każdego przypadku. Zwykle jest to domyślnie ORDER BY id ASC , ale w tym podzapytaniu pierwszy wiersz w każdym authorId z najwyższymi votes .

Uwaga: Jak wspomniał Iain Elder, to rozwiązanie nie działa z ONLY_FULL_GROUP_BY aktywny i działa tylko w MySQL. To rozwiązanie jest w pewnym stopniu nieobsługiwane ze względu na brak dokumentacji potwierdzającej to zachowanie. Działa to dobrze dla mnie i zawsze działało dobrze dla mnie.

Ta metoda nadal działa na najnowszym MySQL w 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. Uzyskaj dostęp do MySQL MAMP z terminala

  2. Jak wyświetlić dane z mysql za pomocą angular.js PHP?

  3. MySQL jak łączyć tabele na dwóch polach

  4. com.mysql.jdbc.exceptions.jdbc4.CommunicationsException:awaria łącza komunikacyjnego ze zdalną bazą danych

  5. Zadanie dla mysqld.service nie powiodło się Zobacz status systemctl mysqld.service