0

我有一个包含以下列的表格:

ConnectionId INT - primary key, identity,
ServerId INT, 
ClientId INT, 
Time DATETIME, 
ConnectionType INT

如何定义一个最佳视图,该视图返回每个组合的所有组合ServerId以及ClientId最后连接的时间和类型?

4

1 回答 1

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 上创建一个由三部分组成的索引。

于 2012-09-04T14:06:18.013 回答