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 サイトの他の関連記事を参照してください。