最大値に対応する列値の取得
SQL では、最大値に対応する列値を取得したい場合があります。別の列の値を取得しながら、取得したデータが
問題:
テーブルをクエリして特定の列を取得し、列に基づいて結果をグループ化する場合 (ビデオ カテゴリなど)、指定された列 (video_id など) の最大値を指定すると、正しい値が取得されますが、他のすべての列 (video_url、video_date、など) についてはテーブルの最初の行が返されます。
解決策:
最大値に対応する列を適切に取得するには、次のアプローチを検討してください:
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
このクエリは、JOIN 操作を利用して、最大ビデオ ID を計算するサブクエリからのビデオ ID (video_id) を照合します。各ビデオ カテゴリの (id) とビデオ テーブルのビデオ ID。 JOIN 条件 s.video_id = max.id を使用することで、各カテゴリの最大ビデオ ID を持つ行のみが返されるようになります。
このアプローチは、最大ビデオ ID に対応する正しい値を提供するだけではありません。また、元の投稿で提案されたソリューションよりも大幅に高速に実行されます。
以上がSQL で最大値に対応する列の値を取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。