首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SQL:在每个组中获取Nth项

SQL:在每个组中获取Nth项
EN

Stack Overflow用户
提问于 2008-12-08 15:54:05
回答 2查看 1.6K关注 0票数 3

我有一个这样的用户表

代码语言:javascript
复制
user_id | community_id | registration_date
--------------------------------------------
1       |     1        | 2008-01-01
2       |     1        | 2008-05-01
3       |     2        | 2008-01-28
4       |     2        | 2008-07-22
5       |     3        | 2008-01-11

对于每个社区,我想得到第三个用户注册的时间。使用MySql的“限制”SQL扩展,我可以很容易地为单个社区做到这一点。例如,对于使用ID=2的社区

代码语言:javascript
复制
select registration_date
from user
order by registration_date
where community_id = 2
limit 2, 1

或者,我可以通过以下方式获得第一个用户为所有社区注册的日期:

代码语言:javascript
复制
select community_id, min(registration_date) 
from user 
group by 1

但是我不知道如何在一个SQL语句中获得所有社区的第三个用户的注册日期。

干杯,唐

EN

回答 2

Stack Overflow用户

发布于 2008-12-08 16:10:49

具有内部选择:

代码语言:javascript
复制
select 
  registration_date, community_id 
from 
  user outer 
where 
  user_id IN (
    select 
      user_id 
    from 
      user inner 
    where 
      inner.community_id = outer.community_id 
    order by 
      registration_date 
    limit 2,1
  )
order by registration_date

选择用户集合,其中每个用户是其社区中的第三个用户,由内部select中的限制子句返回。

票数 2
EN

Stack Overflow用户

发布于 2008-12-08 16:11:35

你是这个意思吗?

代码语言:javascript
复制
SELECT registration_date
FROM user
ORDER BY registration_date
LIMIT n

其中n是您所关心的用户。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/349933

复制
相关文章

相似问题

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