ホームページ > データベース > mysql チュートリアル > パフォーマンスを維持しながら SQL で列の値を効率的にカウントするにはどうすればよいですか?

パフォーマンスを維持しながら SQL で列の値を効率的にカウントするにはどうすればよいですか?

Barbara Streisand
リリース: 2025-01-03 02:47:38
オリジナル
947 人が閲覧しました

How Can I Efficiently Count Column Values in SQL While Maintaining Performance?

SQL での列値の効率的なカウント

列内の値の出現数をカウントすることは、データベース クエリの一般的なタスクです。この説明では、生徒の表で年齢の出現を数える効率的な方法を検討します。

問題の説明

次の構造を持つ表を考えてみましょう:

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 列を含める

元のテーブル構造に 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 サイトの他の関連記事を参照してください。

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