假设我有一张桌子可以存储每个人做某事(让我们说跳跃)
该表有一个JumpNumber(每次插入时自动递增,所以每次跳转都有一个,而不是总数)。它还记录了作为MemberID跳跃的成员以及他们跳过的时间。
我想提出一个查询,找出发生最多的成员然后提供他们的ID以及他们每次跳过的时间。
但是,如果有2个或更多成员跳跃最多(因此打平),它们仍应显示每个成员的跳跃时间。
所以我不能只做一个降序并限制为1.我也很困惑我应该如何找到最重复的成员,我猜测COUNT但不是100%确定如何。
答案 0 :(得分:0)
那就像是:
SELECT USER_ID
FROM YOURTABLE A
WHERE JUMPS = (SELECT MAX(JUMPS)
FROM YOURTABLE B)
这将返回跳转最多的所有USER_ID,然后您可以选择选择用户的所有记录
答案 1 :(得分:0)
如果存储跳转,请使用Xavjer
的变体如果你没有存储跳跃,首先你找到了最大数量
select user_id, count(*) as c from TABLE group by user_id order by c desc limit 1
之后,您再次进行相同的分组并选择具有该计数的所有user_id,并将其他字段的原始表连接起来。
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;