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

Как да напиша този 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

редактиране Това може да работи по-добре в зависимост от RDBMS, която използвате, и размера на набора от данни. Опитайте и двете и сравнете.

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. Как мога да активирам разширението MySQLi в PHP 7?

  2. Поддръжка на PDO за множество заявки (PDO_MYSQL, PDO_MYSQLND)

  3. Грешка при импортиране на база данни на MySQL #1064

  4. Предупреждение:Предоставен е невалиден аргумент за foreach() в

  5. MySQL:Бавен журнал; добавяне на използване на процесора