0

80,000以上の行(タグフィード)を持つ単一のテーブルがあり、そのうち12個の個別のタグ(TagID)があるため、12行のみを返します。

(MAX)日付列に基づいて、各tagidの最新の値を検索したいと思います。だから本当に私はtagidにDISTINCTが必要で、最新の日付のレコードがあることを確認し、tagid、日付、場所の列を表示します

4

2 に答える 2

0
SELECT date, tagid, location
FROM table a
WHERE date = (
    SELECT MAX(date)
    FROM table b
    WHERE a.key1 = b.key1
      AND a.key2 = b.key2
      -- etc
)

あなたが望むものを手に入れます。それWHERE a.tagid = b.tagidがおそらくあなたが望むWHERE句になると思いますが、行を一意にする他の列がある場合は、それらも含める必要があるかもしれません。

于 2012-05-15T12:38:51.303 に答える
0

サブクエリ内のすべてのキー列を接続せずに、目的の結果を生成する方法を次に示します。

WITH x AS ( 
     SELECT datecol, 
         tagid, 
         location, 
         ROW_NUMBER() OVER ( PARTITION BY tagid ORDER BY datecol DESC ) AS rnum
     FROM sometable
)
SELECT datecol, tagid, location FROM x WHERE rnum = 1
;
于 2012-05-15T19:26:24.357 に答える