gpt4 book ai didi

sql-server - 是否可以编写查询来查找没有 JOIN 和 ORDER BY 的最大记录?

转载 作者:行者123 更新时间:2023-12-03 13:00:18 26 4
gpt4 key购买 nike

已更新 - 问题

除了使用自联接之外,是否有更更紧凑的方式来编写从表中选择最大记录数的查询?

一个示例是可能具有以下架构的事件表:

   EventID | EventType | Timestamp | Description
-----------+-----------+-----------+--------------
INT | VARCHAR | INT | VARCHAR

并且可能包含每种类型事件的多条记录。比方说:

     1     |    A      |  100000   | 'First Event'
2 | A | 100005 | 'Second Event'
3 | B | 100009 | 'Third Event'
4 | A | 100009 | 'Fourth Event'
5 | B | 100010 | 'Fifth Event'
6 | B | 100030 | 'Sixth Event'
7 | A | 100030 | ' ... '
8 | C | 100030 | ' ... '
9 | C | 100050 | ' ... '

假设我想知道每种类型的最新事件是什么 - 即事件 #6、#7 和 #9。然后我将不得不编写一个如下所示的查询:

SELECT EventID
, EventType
, Timestamp
, Description
FROM EventsTable T
INNER JOIN (SELECT EventType
, MAX(Timestamp)
FROM EventsTable TInner
GROUP BY EventType) TSelf
ON T.Timestamp = TSelf.Timestamp
AND T.EventType = TSelf.EventType

所以问题归结为:是否有更紧凑的方式来表达相同的查询,理想情况下无需求助于 JOIN

最佳答案

试试这个..

SELECT EventID, EventType, Timestamp, Description
FROM EventsTable
WHERE EventType = 'B' AND
Timestamp = (SELECT max(Timestamp) FROM EventsTable WHERE EventType = 'B');

关于sql-server - 是否可以编写查询来查找没有 JOIN 和 ORDER BY 的最大记录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15178871/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com