列内の値の出現数をカウントすることは、データベース クエリの一般的なタスクです。この説明では、生徒の表で年齢の出現を数える効率的な方法を検討します。
次の構造を持つ表を考えてみましょう:
id | age -------- 0 | 25 1 | 25 2 | 23
私たちの目的は、図に示すように、同じ年齢の生徒の数とともに生徒の情報を返すクエリを作成することです。以下:
id | age | count ---------------- 0 | 25 | 2 1 | 25 | 2 2 | 23 | 1
効率的な列値のカウントを実現するには、次の SQL コードを利用できます:
SELECT age, count(age) FROM Students GROUP BY age
このクエリでは、sub の使用が不要になります。 -クエリ。パフォーマンスに大きな影響を与える可能性があります。 age 列の結果をグループ化することで、各年齢値の出現回数を効果的にカウントします。
元のテーブル構造に id 列を含める必要がある場合は、次の値を利用できます。次のようなサブクエリ:
SELECT S.id, S.age, C.cnt FROM Students S INNER JOIN (SELECT age, count(age) as cnt FROM Students GROUP BY age) C ON S.age = C.age
このサブクエリのアプローチにより、カウントの効率を維持しながら id 列を含めることができます。操作。
以上がパフォーマンスを維持しながら SQL で列の値を効率的にカウントするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。