ホームページ > データベース > mysql チュートリアル > SQL サブクエリで最大値と関連する列を取得するにはどうすればよいですか?

SQL サブクエリで最大値と関連する列を取得するにはどうすればよいですか?

Barbara Streisand
リリース: 2024-12-29 12:51:15
オリジナル
456 人が閲覧しました

How to Retrieve Maximum Value and Associated Columns in SQL Subqueries?

SQL の最大値サブクエリ

このクエリでは、別の列の最大値に基づいて列の対応する値を取得しようとします。 。元のアプローチでは GROUP BY ステートメントを使用していますが、確実に取得できるのは最大ビデオ ID だけであり、他の列からの関連データは取得できません。

これに対処するには、カテゴリごとに個別の最大ビデオ ID を識別するサブクエリの利用を検討してください。 。以下の変更されたクエリは、このアプローチに従っています:

SELECT
    *
FROM
    videos
WHERE
    video_id IN
    (
        SELECT
            DISTINCT
            MAX(video_id)
        FROM
            videos
        GROUP BY
            video_category
    ) 
ORDER BY
    video_category ASC
ログイン後にコピー

このクエリでは、最大ビデオ ID のセットを分離するためにサブクエリが使用されます。次に、このセットを使用してテーブルがフィルタリングされ、対応する最大ビデオ ID のすべての列が取得されます。 IN 演算子を利用して結果を連結することにより、このクエリは目的の値を効率的に取得します。

また、以下に示すように、結合演算を使用して同じ結果を得ることができます。

SELECT
   s.video_id
   ,s.video_category
   ,s.video_url
   ,s.video_date
   ,s.video_title
   ,s.short_description
FROM videos s
   JOIN (SELECT MAX(video_id) AS id FROM videos GROUP BY video_category) max
      ON s.video_id = max.id
ログイン後にコピー

このアプローチでは、結合を利用して最大ビデオ ID 行をビデオ テーブルの対応する行と照合し、最大ビデオ ID ごとに完全な列セットを取得します。どちらのソリューションも、各カテゴリの最大ビデオ ID に関連付けられた値を取得することで、問題に効果的に対処します。

以上がSQL サブクエリで最大値と関連する列を取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート