我有一个包含大量用户信息的数据库,记录了他们所居住的城市和登录网站的次数。我想找到每个城市最活跃的用户。
我知道如何找到每个城市最活跃的单个用户:
select user_id, city, max(login_count)
from user
group by city
但是能够找到每个城市最活跃的10个用户将非常有用。或者更有用的是,但我怀疑在SQL中可能不可能实现的是按活动量排名前10%的用户。
如果有人能提供如何完成这两个任务的想法,我将非常感激。
我正在使用Navicat连接到MySQL服务器进行此任务。
user_id
进行分组,所以你得到的user_id
可能与max(login_count)
无关。除MySQL之外的其他关系型数据库系统出于这个原因强制要求你对所有非聚合列进行分组。 - JNK