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

平均を見つけて、重複するIDの最大平均を表示しますか?


これには、AVG()を使用します。最大平均値を見つけるには、MAX()を使用してidでグループ化します。まずテーブルを作成しましょう-

mysql> create table DemoTable
   -> (
   -> PlayerId int,
   -> PlayerScore int
   -> );
Query OK, 0 rows affected (0.55 sec)

挿入コマンド-

を使用して、テーブルにいくつかのレコードを挿入します
mysql> insert into DemoTable values(1,78);
Query OK, 1 row affected (0.16 sec)
mysql> insert into DemoTable values(2,82);
Query OK, 1 row affected (0.25 sec)
mysql> insert into DemoTable values(1,45);
Query OK, 1 row affected (0.17 sec)
mysql> insert into DemoTable values(3,97);
Query OK, 1 row affected (0.22 sec)
mysql> insert into DemoTable values(2,79);
Query OK, 1 row affected (0.12 sec)

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

mysql> select *from DemoTable;

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

+----------+-------------+
| PlayerId | PlayerScore |
+----------+-------------+
|       1 |           78 |
|       2 |           82 |
|       1 |           45 |
|       3 |           97 |
|       2 |           79 |
+----------+-------------+
5 rows in set (0.00 sec)

これは、MySQLで重複するIDの最大平均値を見つけるためのクエリです-

mysql> select PlayerId from DemoTable
   -> group by PlayerId
   -> having avg(PlayerScore) > 80;

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

+----------+
| PlayerId |
+----------+
|        2 |
|        3 |
+----------+
2 rows in set (0.00 sec)

  1. MySQL ORDER BY ASCで、下部にNULLを表示しますか?

    これには、ORDERBYでCASEステートメントを使用します。まずテーブルを作成しましょう- mysql> create table DemoTable1937    (    Name varchar(20)    ); Query OK, 0 rows affected (0.00 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert into DemoTable1937 values('Chris'); Query OK, 1 row affect

  2. MySQLの対応する重複IDから最大量を表示する

    対応する重複IDから最大量を表示するには、MAX()をGROUPBY句とともに使用します- mysql> create table DemoTable2003 (    CustomerId int,    Amount int ); Query OK, 0 rows affected (0.65 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert into DemoTable2003 values(101,560); Query OK, 1 row affected (0.12 sec