sql - 获取每个 ID 的最高和第二高值 (SQL)
问题描述
SQL 新手。在 Access 2016 中。在不同设备(EQUIP1、EQUIP2、EQUIP3)的表中,我想查询最后一个和倒数第二个维护日期。
我搜索的许多修复不考虑按 ID 分组(在我的情况下为 EQUIP#)
是)我有的:
TABLE Maintenance
equipment Date
1 1/1/2019
1 1/2/2019
1 1/3/2019
2 2/1/2019
2 2/2/2019
2 2/3/2019
我需要的:
QUERY LATESTDATES
equipment NewDate PreviousDate
1 1/3/2019 1/2/2019
2 2/3/2019 2/2/2019
编辑:谢谢!有点赶上语法,但这是我的最终解决方案:
SELECT [a1].equipment, NewDate, Max([b].Date) as PreviousDate
FROM
(SELECT equipment,Max(Date) as NewDate
FROM Maintenance AS [A]
GROUP BY equipment) AS [a1]
INNER JOIN Maintenance AS [b]
ON [b].equipment= [a1].equipment AND [b].Date <> [a1].NewDate
GROUP BY [a1].equipment, [a1].NewDate
解决方案
这是我的解决方案,它可能不是最干净的,但它应该适用于任何 SQL。
select a1.equipment, highest_date, max(b.date) as second_highest_date
from
(
select equipment, max(date) as highest_date
from YOUR_TABLE as a
group by equipment
) a1
join YOUR_TABLE as b
on b.equipment = a1.equipment and b.date != a1.highest_date
group by a1.equipment, a1.highest_date
推荐阅读
- javascript - && 运算符是否充当 if 条件?
- python - 在 Python 中计算 IRR
- python - 绘制五元宽边天线的辐射方向图
- mongodb - show dbs 和 show databases 之间的 MongoDB shell 区别
- java - 将项目添加到资源文件
- html - 在 Qualtrics 中包装突出显示的问题文本?
- php - Laravel5.7:使用视图中返回的模型获取当前月份的 sum()
- python - Python 记录器未在 AWS 上写入日志
- javascript - 为什么 WebAssembly 这么慢?
- php - PHP xpath 查询中的空格(新的 SimpleXMLElement)