会员表,名为users
里面有一个名为state 的列,存储这个会员所在的国家。
这个列并不是外键,如果是中国,存储的就是CN,如果是英国,存的就是UK这样的。现在要求查出,会员数最多的前五个国家。
并且还要查询出这个国家的会员数占所有会员的百分比。
这个查询要怎么写啊?
谢谢回答。
里面有一个名为state 的列,存储这个会员所在的国家。
这个列并不是外键,如果是中国,存储的就是CN,如果是英国,存的就是UK这样的。现在要求查出,会员数最多的前五个国家。
并且还要查询出这个国家的会员数占所有会员的百分比。
这个查询要怎么写啊?
谢谢回答。
select 国家,count(*) as 会员数,count(*)/(select count(*) from tt) as 百分比
from tt group by 国家 order by count(*) desc limit 5
但是,有个问题:假如有6个国家的会员数都是一样的,并且都是并列前5名,那么,怎么出数据呢?(当然了,仅仅是假如)通用一点: 假如有N个国家的会员数都是一样的,并且这N个国家排在第M名(M<=5,且M+N>6 ),那么,怎么出数据呢?