在不使用聚合函式的情況下,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