首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >SQL查询验证-简单

SQL查询验证-简单
EN

Stack Overflow用户
提问于 2018-12-07 04:30:56
回答 3查看 74关注 0票数 1

我正在写一个查询,想找出班上年龄第二大的女学生,道布是生日,因为时间戳、姓名和性别都是可变的。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
SELECT min(DOB)
FROM Student
WHERE DOB > (SELECT min(DOB) FROM Student where gender='girl')

这是正确的吗?

EN

回答 3

Stack Overflow用户

发布于 2018-12-07 04:36:43

或者更简单:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
SELECT DOB
FROM Student
WHERE gender='girl'
GROUP BY DOB
ORDER BY DOB ASC
LIMIT 1,1

道布的分组是指两个完全相同的DOB (双胞胎?)下一个最低的值是select。它可以在第二个相同的日期中省略,作为第二个最旧的日期。

票数 2
EN

Stack Overflow用户

发布于 2018-12-07 04:48:35

以下查询将为您提供所需的输出

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
WITH T AS
(
SELECT *
   DENSE_RANK() OVER (ORDER BY DOB ) AS Rnk
FROM Student
WHERE gender='girl'
)
SELECT min(DOB)
FROM T
WHERE Rnk = 2;

您可以更改RNK值以获得下一个最旧的值,例如,对于第三旧的值,您可以使用WHERE Rnk = 3

票数 0
EN

Stack Overflow用户

发布于 2018-12-07 04:50:32

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    WITH myTableWithRows AS (
    SELECT (ROW_NUMBER() OVER (ORDER BY   Student.DOB)) as row,*
    FROM Student )
    SELECT * FROM myTableWithRows WHERE  row = 2

我创建了这个假示例,查询结果如下:

或者,您也可以使用以下查询:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 Select top 1 * from (select top 2 from    Student order by dob desc) order by dob desc     
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53663286

复制
相关文章

相似问题

添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文