2

エントリが重複している postgres データベースがあります。created_by 列と

id | name    | created_on
1  | 'Hello' | 3/29
2  | 'Hey'   | 4/3
3  | 'Hello' | 3/31
4  | 'Hey'   | 4/1

「Hello」と「Hey」が重複しているため、単一のクエリを作成して次のリストを表示したいと思います。

id | name    | created_on
2  | 'Hey'   | 4/3
3  | 'Hello' | 3/31

どうすればその SQL クエリを作成できますか?

実際に、'DISTINCT ON' と 'ORDER BY' を 1 つのクエリ (JOIN を使用) に入れようとすると、次のエラーが発生します。

SELECT DISTINCT ON expressions must match initial ORDER BY expressions

前もって感謝します

4

3 に答える 3

1

これを試して:

SELECT t1.*
FROM tablename AS t1
INNER JOIN
(
  SELECT name, MAX(created_on) AS MaxDate
  FROM tablename 
  GROUP BY name
) AS t2  ON t1.name       = t2.name
        AND t1.created_on = t2.maxdate;

SQL フィドルのデモ

于 2013-04-03T07:40:59.717 に答える