Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Làm thế nào để viết câu lệnh SQL này?

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

chỉnh sửa Điều này có thể hoạt động tốt hơn, tùy thuộc vào RDBMS bạn đang sử dụng và kích thước của tập dữ liệu. Hãy thử cả hai và so sánh.

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. Không muốn mysql tự động truyền chuỗi thành số nguyên

  2. Cách kết nối với MySQL từ dòng lệnh

  3. MYSQL - Tham gia bên trong với SAU CẬP NHẬT trong bảng

  4. Tải hình ảnh lên Máy chủ Từ xa, iPhone

  5. Chỉ hiển thị giờ trong MYSQL DATEDIFF