Mysql
 sql >> Baza danych >  >> RDS >> Mysql

MySQL - ranking według count() i GROUP BY

Najpierw potrzebujesz całego zestawu wyników pogrupowanych według identyfikatora użytkownika i uporządkowanych ... następnie zastosuj ranking

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

Aby dostać się do konkretnej osoby i mieć problem z próbą klauzuli „HAVING”, podsumowałbym ją, a następnie zastosowałbym gdzie...

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. Przekazywanie wartości do operacji MySQL IN w przygotowanym oświadczeniu PDO?

  2. Błąd krytyczny, który można złapać:obiekt klasy DateTime nie mógł zostać przekonwertowany na ciąg

  3. Jak uzyskać wartości wierszy z datagridview i przekazać je do innego formularza za pomocą przycisku w tym samym wierszu?

  4. Jak śledzić odsłony strony bez niszczenia bazy danych MySQL?

  5. Zapytanie aktualizujące Mysql z przygotowaną instrukcją daje błąd