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に3つの部分からなるインデックスを作成します。

于 2012-09-04T14:06:18.013 に答える