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

MySQLでORDERBYを使用して同じ名前の学生のスコアを合計するにはどうすればよいですか?


このためには、GROUPBY句とともにORDERBYを使用します。まず、生徒の名前とスコアを使用してテーブルを作成しましょう-

mysql> create table countRowValueDemo
   -> (
   -> StudentId int NOT NULL AUTO_INCREMENT PRIMARY KEY,
   -> StudentName varchar(20),
   -> StudentMathScore int
   -> );
Query OK, 0 rows affected (0.71 sec)
>

以下は、挿入コマンド-

を使用してテーブルにレコードを挿入するためのクエリです。
mysql> insert into countRowValueDemo(StudentName,StudentMathScore) values('Larry',45);
Query OK, 1 row affected (0.19 sec)

mysql> insert into countRowValueDemo(StudentName,StudentMathScore) values('Mike',56);
Query OK, 1 row affected (0.16 sec)

mysql> insert into countRowValueDemo(StudentName,StudentMathScore) values('John',60);
Query OK, 1 row affected (0.15 sec)

mysql> insert into countRowValueDemo(StudentName,StudentMathScore) values('David',40);
Query OK, 1 row affected (0.24 sec)

mysql> insert into countRowValueDemo(StudentName,StudentMathScore) values('David',70);
Query OK, 1 row affected (0.12 sec)

mysql> insert into countRowValueDemo(StudentName,StudentMathScore) values('John',80);
Query OK, 1 row affected (0.13 sec)

mysql> insert into countRowValueDemo(StudentName,StudentMathScore) values('David',88);
Query OK, 1 row affected (0.17 sec)

以下は、selectステートメント-

を使用してテーブルのすべてのレコードを表示するためのクエリです。
mysql> select * from countRowValueDemo;

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

+-----------+-------------+------------------+
| StudentId | StudentName | StudentMathScore |
+-----------+-------------+------------------+
| 1         | Larry       | 45               |
| 2         | Mike        | 56               |
| 3         | John        | 60               |
| 4         | David       | 40               |
| 5         | David       | 70               |
| 6         | John        | 80               |
| 7         | David       | 88               |
+-----------+-------------+------------------+
7 rows in set (0.00 sec)

ケース1: 降順(合計)

以下は、同じような名前の学生のスコアを合計するためのクエリです。結果は降順で表示されます-

mysql> select StudentName,
   -> sum(StudentMathScore) AS TOTAL_SCORE
   -> from countRowValueDemo
   -> group by StudentName
   -> order by sum(StudentMathScore) desc;

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

+-------------+-------------+
| StudentName | TOTAL_SCORE |
+-------------+-------------+
| David       | 198         |
| John        | 140         |
| Mike        | 56          |
| Larry       | 45          |
+-------------+-------------+
4 rows in set (0.00 sec)

ケース2: 昇順(合計)

以下は、同じような名前の学生のスコアを合計するためのクエリです。結果は降順で表示されます-

mysql> select StudentName,
   -> sum(StudentMathScore) AS TOTAL_SCORE
   -> from countRowValueDemo
   -> group by StudentName
   -> order by sum(StudentMathScore);

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

+-------------+-------------+
| StudentName | TOTAL_SCORE |
+-------------+-------------+
| Larry       | 45          |
| Mike        | 56          |
| John        | 140         |
| David       | 198         |
+-------------+-------------+
4 rows in set (0.00 sec)

  1. MySQLのORDERBYを持つ複数のLIKE演算子?

    以下は、ORDERBY-を使用して複数のLIKE演算子を実装する構文です。 select *from yourTableName order by (    yourColumnName like '%yourValue1%' ) + (    yourColumnName like '%yourValue2%' ) + . . N desc; テーブルを作成しましょう- mysql> create table demo2 −> ( −> id int not null auto

  2. MySQL-同じIDのSUM行?

    同じIDの行を合計するには、GROUPBYHAVING句を使用します。 テーブルを作成しましょう- 例 mysql> create table demo84    -> (    -> id int,    -> price int    -> )    -> ; Query OK, 0 rows affected (0.60 挿入コマンド-を使用して、いくつかのレコードをテーブルに挿入します。 例 mysql> insert into demo84