MySQLで点数(マーク)からパーセンテージを求める方法
MySQLで点数(マーク)からパーセンテージを求める方法
この記事では、MySQLに保存された点数データから平均のパーセンテージを計算する方法を解説します。SUM関数とCOUNT関数を組み合わせて平均値を算出し、CONCAT関数で「%」記号を付けて表示するまでの手順を、サンプルコードとともに順番に見ていきましょう。
1. テーブルを作成する
まず、点数を格納するためのテーブルを作成します。
mysql> create table DemoTable1398
-> (
-> Marks int
-> );
Query OK, 0 rows affected (0.50 sec)
2. レコードを挿入する
INSERT文を使って、テーブルにいくつかの点数データを追加します。
mysql> insert into DemoTable1398 values(78); Query OK, 1 row affected (0.15 sec) mysql> insert into DemoTable1398 values(82); Query OK, 1 row affected (0.10 sec) mysql> insert into DemoTable1398 values(90); Query OK, 1 row affected (0.14 sec) mysql> insert into DemoTable1398 values(98); Query OK, 1 row affected (0.12 sec)
3. テーブルの内容を確認する
SELECT文ですべてのレコードを表示して、データが正しく登録されているか確認します。
mysql> select * from DemoTable1398;
実行すると、次のような結果が出力されます。
+-------+ | Marks | +-------+ | 78 | | 82 | | 90 | | 98 | +-------+ 4 rows in set (0.00 sec)
4. パーセンテージを求めるクエリ
点数のパーセンテージを求めるには、次のようなクエリを実行します。
mysql> select concat(sum(Marks)/count(*),'%') from DemoTable1398;
実行結果は以下のとおりです。
+---------------------------------+ | concat(sum(Marks)/count(*),'%') | +---------------------------------+ | 87.0000% | +---------------------------------+ 1 row in set (0.00 sec)
クエリの仕組みを解説
このクエリのポイントは次の3つです。
- sum(Marks):全レコードの点数の合計値(この例では348)を取得します。
- count(*):テーブル内のレコード数(この例では4)を取得します。
- concat():合計値をレコード数で割った平均値(87)の後ろに「%」記号を連結し、パーセンテージとして表示します。
つまり「合計点 ÷ レコード数」で平均点を求め、それを文字列として「%」付きで整形して表示しているわけです。この手法は、成績管理システムやアンケート集計など、平均達成率を手軽に確認したい場面で活用できます。
-
MySQLのレコードから数字を抽出する方法:CONVERT関数の実践的な使い方
MySQLでレコードから数字を抽出する方法 「John-11」のような文字列が保存されたカラムから、数字の部分だけを取り出したいケースはよくあります。そんなときは CONVERT() 関数や正規表現を活用しましょう。CONVERT() は値をあるデータ型から別のデータ型へ変換するための関数で、これを利用することで文字列中の数字部分を数値として取得できます。 本記事では、テーブルの作成から数字の抽出・並べ替えまでを、実際のSQL例とともに順を追って解説します。 ステップ1:テーブルを作成する まずはサンプル用のテーブルを作成します。 mysql> create table textInt
-
MySQLのデータディレクトリを確認する方法|Windowsコマンドラインで@@datadirを使う手順
MySQLのデータディレクトリの場所を調べるにはMySQLのデータファイルが実際に保存されている「データディレクトリ」の場所を確認したい場合は、システム変数datadirを使うのが最も簡単です。SELECT文に組み込むだけで、現在の設定値をひと目で把握できます。確認用のクエリMySQLモニター(コマンドライン)から、次のように入力して実行します。mysql> SELECT @@datadir;実行結果の例Windows環境での典型的な出力は以下の通りです。+---------------------------------------------+ | @@datadir