sql >> Databasteknik >  >> RDS >> Mysql

Hur skriver man denna SQL-sats?

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

redigera Detta kan fungera bättre, beroende på vilken RDBMS du använder och storleken på datamängden. Prova båda och jämför.

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. MySQL - Hur man infogar i flera tabeller med främmande nycklar

  2. Det går inte att installera mysqlclient Python-paketet på Windows

  3. anpassat php-forum - visar nya/olästa inlägg

  4. T-SQL vs SQL