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

Jak napisać tę instrukcję SQL?

SELECT user.name, user.subject
FROM user
INNER JOIN (
    SELECT name, COUNT(1) AS occurrences
    FROM user
    GROUP BY name
  ) AS user_occurrences
  ON user.name = user_occurrences.name
ORDER BY user_occurrences.occurrences DESC, user.name ASC, user.subject ASC
LIMIT 4

edytuj Może to działać lepiej, w zależności od używanego RDBMS i rozmiaru zestawu danych. Wypróbuj oba i porównaj.

SELECT user.name, user.subject
FROM user
INNER JOIN user AS user_occurrences
  ON user.name = user_occurrences.name
GROUP BY user.name --, user.subject Second GROUP BY not needed on MySQL, but it should logically be there
ORDER BY COUNT(user_occurrences.subject) DESC, user.name ASC, user.subject ASC
LIMIT 4


  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 Workbench nie może załadować mysql.proc

  2. Parser schematu MySQL w Javie?

  3. Co oznacza gwiazdka * w instrukcji mysql?

  4. HQL jak dołączyć do trzech stołów

  5. Przedwczesny koniec błędu danych w PHP