sql - 用于从一张表中获取少量内容的 SQL 查询
问题描述
我有一张桌子的问题。这是表格的外观:
+----------+------------+-------------+------+
| index_id | version_id | date | type |
+----------+------------+-------------+------+
| 1 | 4 | today | C |
| 1 | 2 | last month | C |
| 1 | 4 | today | U |
| 2 | 3 | yesterday | c |
| 2 | 4 | today | C |
| 2 | 2 | last year | U |
| 3 | 7 | yesterday | C |
| 3 | 6 | last month | C |
| 3 | 8 | today | U |
+----------+------------+-------------+------+
我想要实现的是获取具有两种类型的最大版本和最大日期的索引(index_id)。
像这样:
+----------+------------+-----------+------+
| index_id | version_id | date | type |
+----------+------------+-----------+------+
| 1 | 4 | today | C |
| 1 | 4 | today | U |
| 2 | 4 | today | C |
| 2 | 3 | yesterday | U |
| 3 | 7 | yesterday | C |
| 3 | 8 | today | U |
+----------+------------+-----------+------+
我想问你一些关于这个问题的想法。谢谢。
解决方案
我会去row_number()
:
select t.*
from (select t.*,
row_number() over (partition by index_id, type order by version_id desc) as seqnum
from t
) t
where seqnum = 1;
推荐阅读
- php - 如何从 html 响应 PHP 在 qrcode tcpdf 的中心设置徽标?
- python - Python 3 requests.get() 在我公司的互联网上不起作用。解决方法?
- amazon-lex - 如何在 Postman 测试脚本中声明 AWS Lex 响应卡?
- spring-boot - Springboot Quartz:集群模式被忽略?
- r - 如何根据任何因素在散点图中绘制多边形?
- javascript - reactjs:如何从函数内部更新 reader.onload() 函数外部的变量?
- formula - 嘿,我需要在 Netsuite 中创建一个公式(文本),有人能给我提示如何完成它吗?更新
- perl - 将“ls”命令捕获到 Perl 中的数组中
- alexa - 我们可以将 alexa 技能添加到自定义 Alexa android 应用程序吗?
- database - 如何安装特定版本的 postgresql