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

MySQL - xếp hạng theo count () và GROUP BY

Trước tiên, bạn cần toàn bộ tập hợp kết quả của mình được nhóm theo ID người dùng và sắp xếp ... sau đó áp dụng xếp hạng

select
      @rownum := @rownum +1 as rank,
      prequery.uid,
      prequery.PostCount
   from
      ( select @rownum := 0 ) sqlvars,
      ( SELECT uid, count(id) postCount
           from posts
           group by uid
           order by count(id) desc ) prequery

Để tìm kiếm một người cụ thể và gặp sự cố khi thử mệnh đề "HAVING", tôi sẽ tóm tắt nó lại và sau đó áp dụng where ...

select WrappedQuery.* 
   from ( entire query from above ) WrappedQuery
   where WrappedQuery.uid = SinglePerson



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bảng HTML động trong PHP Mail

  2. bộ nhớ cache truy vấn không hoạt động

  3. HQL đang tạo 'kết hợp chéo' không hoàn chỉnh trên executeUpdate

  4. NodeJS Cách xử lý yêu cầu đồng thời tới MySQL

  5. Tránh đưa vào SQL trong SQL-regex do người dùng tạo