gpt4 book ai didi

SQL:获取每组中的第 N 个项目

转载 作者:可可西里 更新时间:2023-11-01 08:38:29 27 4
gpt4 key购买 nike

我有一个这样的用户表

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

对于每个社区,我想获得第 3 个用户注册的时间。我可以使用 MySql 的“限制”SQL 扩展轻松地为单个社区执行此操作。例如,对于 ID=2 的社区

select registration_date
from user
order by registration_date
where community_id = 2
limit 2, 1

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

select community_id, min(registration_date) 
from user
group by 1

但我不知道如何在单个 SQL 语句中获取所有 社区的第 3 个用户的注册日期。

干杯,唐

最佳答案

内部选择:

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

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

关于SQL:获取每组中的第 N 个项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/349933/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com