sql >> Databáze >  >> RDS >> Mysql

MySQL - řazení podle count() a GROUP BY

Nejprve potřebujete celou sadu výsledků seskupenou podle ID uživatele a seřazenou... poté použijte hodnocení

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

Chcete-li získat pro konkrétní osobu a problém při pokusu o klauzuli "HAVING", pak bych to zabalil a pak použil kde...

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



  1. Funkce 'Upravit' pro příspěvky na fóru a podobně

  2. Přírůstkové statistiky NEPOUŽÍVÁ nástroj Query Optimizer

  3. Jak převedu sloupec na ASCII za běhu bez uložení, abych zkontroloval shodu s externím řetězcem ASCII?

  4. Filtrujte prázdný nebo prázdný vstup pomocí LOAD DATA INFILE v MySQL