ホームページ >データベース >mysql チュートリアル >SQL で最新の 3 つの異なるレコードを選択するにはどうすればよいですか?

SQL で最新の 3 つの異なるレコードを選択するにはどうすればよいですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-11-28 07:06:11969ブラウズ

How to Select the 3 Most Recent Distinct Records in SQL?

SQL を使用したまったく最近のレコードの選択

このクエリのタスクは、テーブルから最新の 3 つのレコードを抽出することです。特定の列 otheridentifier の値は異なります。次の SQL ステートメントが試行されました:

SELECT * FROM `table` GROUP BY (`otheridentifier`) ORDER BY `time` DESC LIMIT 3

ただし、SQL では順序付けよりもグループ化が優先されるため、このクエリは予期しない結果をもたらしました。望ましい結果を達成するには、より複雑なアプローチが必要です。

SELECT *
FROM `table`
WHERE `id` = (
    SELECT `id`
    FROM `table` as `alt`
    WHERE `alt`.`otheridentifier` = `table`.`otheridentifier`
    ORDER BY `time` DESC
    LIMIT 1
)
ORDER BY `time` DESC
LIMIT 3

このクエリは、個別の otheridentifier 値ごとに最新のレコードを識別するネストされた select ステートメントで構成されます。次に結果はフィルタリングされ、最新の 3 つのレコードのみが取得されるようになります。

以上がSQL で最新の 3 つの異なるレコードを選択するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。