sql >> Database teknologi >  >> RDS >> Mysql

MySQL - rangering efter count() og GROUP BY

Du skal først bruge hele dit resultatsæt grupperet efter bruger-id og bestilt... og derefter anvende rangeringen

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

For at finde en bestemt person og et problem med at forsøge "HAVING"-klausulen, ville jeg pakke det sammen og derefter anvende et hvor...

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



  1. 'max_user_connections' sat til 200 - får stadig fejl

  2. Grupper sider fra én kolonne

  3. UNION resultaterne af flere lagrede procedurer

  4. django.db.utils.operationalError:(2059,Authentication Plugin 'caching_sha2_password')