使用 MySQL where 子句和按 avg() 排序查詢重複單個元素的平均值
為此,使用 having 子句替代 where。我們首先建立一個表 -
mysql> create table DemoTable1338 -> ( -> Name varchar(10), -> Score int -> ); Query OK, 0 rows affected (1.54 sec)
使用插入命令在表中插入一些記錄。此處,我們插入了帶有分數的重複姓名 -
mysql> insert into DemoTable1338 values('Chris',8);
Query OK, 1 row affected (0.80 sec)
mysql> insert into DemoTable1338 values('Bob',4);
Query OK, 1 row affected (0.20 sec)
mysql> insert into DemoTable1338 values('Bob',9);
Query OK, 1 row affected (0.27 sec)
mysql> insert into DemoTable1338 values('Chris',6);
Query OK, 1 row affected (0.27 sec)
mysql> insert into DemoTable1338 values('David',5);
Query OK, 1 row affected (0.23 sec)
mysql> insert into DemoTable1338 values('David',7);
Query OK, 1 row affected (0.40 sec)使用 select 語句顯示錶中的所有記錄 -
mysql> select * from DemoTable1338;
這將生成以下輸出 -
+-------+-------+ | Name | Score | +-------+-------+ | Chris | 8 | | Bob | 4 | | Bob | 9 | | Chris | 6 | | David | 5 | | David | 7 | +-------+-------+ 6 rows in set (0.00 sec)
以下是查詢重複單個元素平均值的一個查詢 -
mysql> select Name,avg(Score) from DemoTable1338 -> group by Name -> having avg(Score) < 9.5 -> order by avg(Score);
這將生成以下輸出 -
+-------+------------+ | Name | avg(Score) | +-------+------------+ | David | 6.0000 | | Bob | 6.5000 | | Chris | 7.0000 | +-------+------------+ 3 rows in set (0.00 sec)
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP