SQL を使用した非構造化データからの成績パーセンテージの効率的な計算
成績をフリーテキストとしてデータベースに保存すると、成績の割合の分布を計算する際に課題が生じます。この記事では、事前定義された成績値がなくても、すべての成績のこれらのパーセンテージを計算する SQL ソリューションを提供します。
パーセンテージ計算用の SQL クエリ
この SQL クエリは、over()
関数を活用して、一意の評定値全体のパーセンテージを効率的に計算します。
<code class="language-sql">SELECT Grade, COUNT(*) * 100.0 / SUM(COUNT(*)) OVER () FROM MyTable GROUP BY Grade;</code>
over()
関数はテーブル全体の合計行数を計算し、考えられるすべてのグレードを指定しなくてもパーセンテージの計算を可能にします。
代替 SQL クエリ (over()
関数のないデータベース用)
over()
関数が欠落しているデータベースの場合、この代替クエリではサブクエリが使用されます。
<code class="language-sql">SELECT Grade, COUNT(*) * 100.0 / (SELECT COUNT(*) FROM MyTable) FROM MyTable GROUP BY Grade;</code>
このアプローチでは、サブクエリを使用して合計行数を取得し、パーセンテージを計算します。
重要な注意事項: これらのソリューションは、成績データが単一文字値 (例: 'A'、'B'、'C') として保存されている場合にパーセンテージを正確に計算します。 非構造化テキスト内のより複雑な評定形式では、これらの SQL クエリを適用する前に評定値を抽出するための前処理が必要です。
以上がSQL はどのようにして非構造化テキスト データから成績パーセンテージ分布を計算できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。