首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在sql中从每个组中找到第二高的?

在sql中从每个组中找到第二高的?
EN

Stack Overflow用户
提问于 2016-02-12 15:20:46
回答 1查看 453关注 0票数 1

我有这样的桌子结构

代码语言:javascript
运行
复制
'encounterID' , 'dateAndTime'

1234          2016-02-12 17:57:57
1234          2016-02-12 17:58:59
1234          2016-02-12 17:59:05

12345         2016-02-12 17:57:57
12345         2016-02-12 17:58:59
12345         2016-02-12 17:59:05

我想为每一个encounterId找到第二个最新的条目?

谁来帮帮忙

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-02-12 15:26:15

您可以使用变量来选择每个组的顶级n个记录:

代码语言:javascript
运行
复制
SELECT encounterID, dateAndTime
FROM (
  SELECT encounterID, dateAndTime,
         @rn := IF(@eID = encounterID, @rn + 1,
                   IF(@eID := encounterID, 1, 1)) AS rn
  FROM mytable
  CROSS JOIN (SELECT @rn := 0, @eID := 0) AS vars
  ORDER BY encounterID, dateAndTime DESC) AS t
WHERE t.rn = 2

外部查询为每个encounterID组选择第二条最新记录。

Demo here

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

https://stackoverflow.com/questions/35366109

复制
相关文章

相似问题

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