首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySQL从表中获取出现次数最多的成员

MySQL从表中获取出现次数最多的成员
EN

Stack Overflow用户
提问于 2014-12-05 15:52:56
回答 2查看 28关注 0票数 0

假设我有一个表,它存储每次有人做某件事(比如跳转)的时间

该表有一个JumpNumber (每次插入都会自动递增,因此每次跳转都会有一个,而不是一个总数)。它还记录了作为MemberID跳跃的成员,以及他们跳跃的时间。

我想做一个查询,找到出现次数最多的成员,然后给出他们的ID和他们每次跳过的时间。

然而,如果有2个或更多的成员跳跃最多(因此是平局),它仍然应该显示他们中的每一个,以及他们的跳跃时间。

所以我不能只做降序和限制为1,我也不知道如何找到最频繁出现的成员,我猜是一个计数,但不是100%确定如何找到。

EN

回答 2

Stack Overflow用户

发布于 2014-12-05 15:58:11

嗯,大概是这样的:

代码语言:javascript
复制
SELECT USER_ID
  FROM YOURTABLE A
 WHERE JUMPS = (SELECT MAX(JUMPS)
                  FROM YOURTABLE B)

这将返回跳转次数最多的所有USER_ID,然后您可以选择所选用户做出某些操作的所有记录

票数 0
EN

Stack Overflow用户

发布于 2014-12-05 16:16:18

如果存储跳转,请使用variant by Xavjer

如果没有存储跳转,则首先需要找到最大计数

代码语言:javascript
复制
  select user_id, count(*) as c from TABLE group by user_id order by c desc limit 1

之后,您将再次执行相同分组,并选择所有具有计数的user_id,并为其他字段选择左连接原始表。

代码语言:javascript
复制
select A.* from ( 
  select user_id from 
   (select user_id, count(*) as c from TABLE group by user_id) as tempB
   ) as tempC where tempC.c=(
      select  count(*) as c from TABLE group by user_id order by c desc limit 1

                             )
   ) as join_table1
 LEFT JOIN TABLE as  A  on A.user_id=join_table1;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27311266

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档