【发布时间】:2013-03-07 18:22:21
【问题描述】:
是否可以编写一个查询,从同一查询中检索到的一组最小值中找到最大值?
通过减小值(将所需的最大值留在列表顶部)来排序最小值很容易,但我很好奇是否可以构造一个只返回该值而不返回其他值的查询。
检索最小值的查询:
SELECT dbo.tblDevices.Status
, L.Device_id
, MIN(L.DateAndTime) As 'End Date'
FROM dbo.tblDeviceLocation AS L
JOIN dbo.tblDevices
ON L.Device_id = dbo.tblDevices.Device_id
GROUP BY L.Device_id, dbo.tblDevices.Status
我想找到这些分钟的最大值的行。我想过尝试使用子查询,但我认为它不起作用,因为它返回 N 最小值的行数。然后我想到了使用 COMPUTE,因为这可以被认为是小计,但这也不起作用,因为您不能对未分组的事物进行小计 (L.DateAndTime)。
有什么想法吗?
*编辑: 我刚刚看到这篇文章http://www.programmerinterview.com/index.php/database-sql/find-maximum-value-without-using-aggregate/,粗略的快速阅读可能适用。当/如果我发现了什么,我会更新。
【问题讨论】: