Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Bagaimana cara menulis pernyataan SQL ini?

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

edit Ini mungkin berkinerja lebih baik, tergantung pada RDBMS yang Anda gunakan dan ukuran kumpulan data. Coba keduanya dan bandingkan.

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 memilih baris di mana tanggal bukan di antara tanggal

  2. cara menemukan koma dengan mysql find_in_set

  3. Bagaimana cara saya terhubung ke MySQL 5.1 di Visual Studio 2010?

  4. font devnagri (hindi) tidak disimpan di mysql

  5. Temukan jumlah total hasil dalam kueri mySQL dengan offset+limit