我有一个包含以下列的表:
ConnectionId INT - primary key, identity,
ServerId INT,
ClientId INT,
Time DATETIME,
ConnectionType INT
如何定义最佳视图,该视图返回ServerId
和ClientId
的所有组合以及每种组合的最后连接的时间和类型?
答案 0 :(得分:0)
假设您使用的是支持排名功能的数据库(例如SQL Server 2005 +,Oracle,Postgres,DB2,Teradata ...),您可以按如下方式执行此操作:
create view as
select ServerId, ClientId, time, type
from (select t.*,
row_number() over (partition by ServerId, ClientId order by time desc) as seqnum
from t
) t
where seqnum = 1
我不知道“最佳观点”是什么意思。如果您希望这更好地工作,请在ServerId,ClientId和time上创建一个由三部分组成的索引。