在不使用聚合函数的情况下,GROUP BY 子句将如何执行?
当我们在 SELECT 语句中使用 GROUP BY 子句且不使用聚合函数时,它的行为就像 DISTINCT 子句。例如,我们有以下表格 -
mysql> Select * from Student_info; +------+---------+------------+------------+ | id | Name | Address | Subject | +------+---------+------------+------------+ | 101 | YashPal | Amritsar | History | | 105 | Gaurav | Chandigarh | Literature | | 125 | Raman | Shimla | Computers | | 130 | Ram | Jhansi | Computers | | 132 | Shyam | Chandigarh | Economics | | 133 | Mohan | Delhi | Computers | | 150 | Saurabh | NULL | Literature | +------+---------+------------+------------+ 7 rows in set (0.00 sec)
通过对列“Address”使用 DISTINCT 子句,MySQL 返回以下结果集。
mysql> Select DISTINCT ADDRESS from Student_info; +------------+ | ADDRESS | +------------+ | Amritsar | | Chandigarh | | Shimla | | Jhansi | | Delhi | | NULL | +------------+ 6 rows in set (0.07 sec)
现在,通过如下使用 GROUP BY 子句,我们可以得到与使用 DISTINCT 相同的结果集 -
mysql> Select ADDRESS from Student_info GROUP BY Address; +------------+ | ADDRESS | +------------+ | NULL | | Amritsar | | Chandigarh | | Delhi | | Jhansi | | Shimla | +------------+ 6 rows in set (0.00 sec)
我们可以观察到 MySQL 使用 GROUP BY 子句返回的结果集与使用 DISTICT 子句返回的结果集之间的差异,即 MySQL 查询使用 GROUP BY 子句返回的结果集是有序的,而相比之下,使用 DISTICT 子句返回的结果集则不是有序的。
广告
数据结构
网络
RDBMS
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP