MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

行の値を合計して結果を並べ替えるMySQLクエリ?


このために、ORDERBY句とともにGROUPBYを使用できます。まずテーブルを作成しましょう-

mysql> create table DemoTable1499
   -> (
   -> StudentName varchar(20),
   -> StudentMarks int
   -> );
Query OK, 0 rows affected (0.46 sec)

挿入コマンド-

を使用して、テーブルにいくつかのレコードを挿入します
mysql> insert into DemoTable1499 values('Chris',56);
Query OK, 1 row affected (0.13 sec)
mysql> insert into DemoTable1499 values('David',78);
Query OK, 1 row affected (0.13 sec)
mysql> insert into DemoTable1499 values('Bob',98);
Query OK, 1 row affected (0.18 sec)
mysql> insert into DemoTable1499 values('Chris',45);
Query OK, 1 row affected (0.12 sec)
mysql> insert into DemoTable1499 values('David',98);
Query OK, 1 row affected (0.12 sec)
mysql> insert into DemoTable1499 values('Bob',58);
Query OK, 1 row affected (0.11 sec)
>

selectステートメントを使用してテーブルのすべてのレコードを表示する-

Mysql> select * from DemoTable1499;

これにより、次の出力が生成されます-

+-------------+--------------+
| StudentName | StudentMarks |
+-------------+--------------+
| Chris       |           56 |
| David       |           78 |
| Bob         |           98 |
| Chris       |           45 |
| David       |           98 |
| Bob         |           58 |
+-------------+--------------+
6 rows in set (0.00 sec)

以下は、行の値を合計して結果を並べ替えるクエリです-

mysql> select StudentName,sum(StudentMarks) as TotalSum from DemoTable1499
   -> group by StudentName
   -> order by TotalSum desc;

これにより、次の出力が生成されます-

+-------------+----------+
| StudentName | TotalSum |
+-------------+----------+
| David       |      176 |
| Bob         |      156 |
| Chris       |      101 |
+-------------+----------+
3 rows in set (0.00 sec)

  1. MySQLクエリでパーセンテージを計算し、結果を四捨五入します

    このために、CONCAT()とround()を使用できます。まずテーブルを作成しましょう- mysql> create table DemoTable1844      (      Number int,      TotalNumber int      ); Query OK, 0 rows affected (0.00 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert into DemoTable1

  2. MySQLでSUMとFORMATを組み合わせて、結果をフォーマットします

    テーブルを作成しましょう- mysql> create table DemoTable1950    (    Amount float    ); Query OK, 0 rows affected (0.00 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert into DemoTable1950 values(45.60); Query OK, 1 row affected (0.00 sec) mysql> insert into DemoTable19