婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁(yè) > 知識(shí)庫(kù) > 分組查詢GROUP BY的使用與SQL執(zhí)行順序的講解

分組查詢GROUP BY的使用與SQL執(zhí)行順序的講解

熱門標(biāo)簽:電銷機(jī)器人各個(gè)細(xì)節(jié)介紹 電話機(jī)器人市場(chǎng)趨勢(shì) 溫州瑞安400電話怎么申請(qǐng) 南昌高頻外呼系統(tǒng)哪家公司做的好 俄國(guó)地圖標(biāo)注app 電銷機(jī)器人 行業(yè) 百度地圖標(biāo)注后不顯示 淄博400電話申請(qǐng) 昆明電信400電話辦理

在SQL中使用GROUP BY來(lái)對(duì)SELECT的結(jié)果進(jìn)行數(shù)據(jù)分組,在具體使用GROUP BY之前需要知道一些重要的規(guī)定。

  • 1、GROUP BY子句可以包含任意數(shù)目的列。也就是說(shuō)可以在組里再分組,為數(shù)據(jù)分組提供更細(xì)致的控制。
  • 2、如果在GROUP BY子句中指定多個(gè)分組,數(shù)據(jù)將在最后指定的分組上匯總。
  • 3、GROUP BY子句中列出的每個(gè)列都必須是檢索列或有效的表達(dá)式(但不能是聚集函數(shù))。如果在SELECT中使用了表達(dá)式,則必須在GROUP BY子句中指定相同的表達(dá)式。不能使用別名。
  • 4、出了聚集計(jì)算語(yǔ)句外,SELECT語(yǔ)句中的每一列都必須在GROUP BY子句中給出。
  • 5、如果分組列中有NULL值,則NULL將作為一個(gè)分組返回。如果有多行NULL值,它們將分為一組。
  • 6、GROUP BY子句必須在WHERE子句之后,ORDER BY之前。

過(guò)濾分組

對(duì)分組過(guò)于采用HAVING子句。HAVING子句支持所有WHERE的操作。HAVING與WHERE的區(qū)別在于WHERE是過(guò)濾行的,而HAVING是用來(lái)過(guò)濾分組。

另一種理解WHERE與HAVING的區(qū)別的方法是,WHERE在分組之前過(guò)濾,而HAVING在分組之后以每組為單位過(guò)濾。

分組與排序

一般在使用GROUP BY子句時(shí),也應(yīng)該使用ORDER BY子句。這是保證數(shù)據(jù)正確排序的唯一方法。

SQL SELECT語(yǔ)句的執(zhí)行順序:

  • 1、from子句組裝來(lái)自不同數(shù)據(jù)源的數(shù)據(jù);
  • 2、where子句基于指定的條件對(duì)記錄行進(jìn)行篩選;
  • 3、group by子句將數(shù)據(jù)劃分為多個(gè)分組;
  • 4、使用聚集函數(shù)進(jìn)行計(jì)算;
  • 5、使用having子句篩選分組;
  • 6、計(jì)算所有的表達(dá)式;
  • 7、使用order by對(duì)結(jié)果集進(jìn)行排序;
  • 8、select 集合輸出。

舉個(gè)例子吧

select 考生姓名, max(總成績(jī)) as max總成績(jī)
from tb_Grade
where 考生姓名 is not null
group by 考生姓名
having max(總成績(jī)) > 600
order by max總成績(jī)

在上面的示例中 SQL 語(yǔ)句的執(zhí)行順序如下:

  • 1、首先執(zhí)行 FROM 子句, 從 tb_Grade 表組裝數(shù)據(jù)源的數(shù)據(jù)
  • 2、執(zhí)行 WHERE 子句, 篩選 tb_Grade 表中所有數(shù)據(jù)不為 NULL 的數(shù)據(jù)
  • 3、執(zhí)行 GROUP BY 子句, 把 tb_Grade 表按 "學(xué)生姓名" 列進(jìn)行分組
  • 4、計(jì)算 max() 聚集函數(shù), 按 "總成績(jī)" 求出總成績(jī)中最大的一些數(shù)值
  • 5、執(zhí)行 HAVING 子句, 篩選課程的總成績(jī)大于 600 分的.
  • 6、執(zhí)行 ORDER BY 子句, 把最后的結(jié)果按 "Max 成績(jī)" 進(jìn)行排序.

注:如果使用了連接join和on,則會(huì)在where執(zhí)行之前先執(zhí)行on,然后執(zhí)行join,接著才去執(zhí)行where。

附:

MySQL中的聚集函數(shù):

  • 1、count()返回某列的行數(shù)
  • 2、avg()返回某列的平均值
  • 3、max()返回某列的最大值
  • 4、min()返回某列的最小值
  • 5、sum()返回某列的和
  • 6、distinct 去除重復(fù)值

注:avg()忽略值為null的行,count(*)時(shí)統(tǒng)計(jì)所有行,count(列)時(shí)忽略為null的行

總結(jié)

以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對(duì)腳本之家的支持。如果你想了解更多相關(guān)內(nèi)容請(qǐng)查看下面相關(guān)鏈接

您可能感興趣的文章:
  • 詳解SQL中Group By的使用教程
  • Laravel 實(shí)現(xiàn)Eloquent模型分組查詢并返回每個(gè)分組的數(shù)量 groupBy()
  • Django ORM 聚合查詢和分組查詢實(shí)現(xiàn)詳解
  • MySQL分組查詢Group By實(shí)現(xiàn)原理詳解
  • 詳解MySQL中的分組查詢與連接查詢語(yǔ)句
  • sql 分組查詢問(wèn)題
  • Oracle中分組查詢group by用法規(guī)則詳解

標(biāo)簽:拉薩 洛陽(yáng) 吐魯番 葫蘆島 嘉峪關(guān) 甘南 安徽 海口

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《分組查詢GROUP BY的使用與SQL執(zhí)行順序的講解》,本文關(guān)鍵詞  分組,查詢,GROUP,的,使用,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《分組查詢GROUP BY的使用與SQL執(zhí)行順序的講解》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于分組查詢GROUP BY的使用與SQL執(zhí)行順序的講解的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    主站蜘蛛池模板: 崇左市| 娄底市| 青川县| 淅川县| 香河县| 桃园市| 容城县| 柘荣县| 平阴县| 蒙阴县| 湖南省| 休宁县| 汝阳县| 松桃| 岚皋县| 禹城市| 白朗县| 古田县| 大洼县| 襄城县| 定陶县| 香格里拉县| 景德镇市| 通州区| 邢台县| 磐石市| 锡林郭勒盟| 长顺县| 青州市| 涞源县| 通江县| 武宣县| 滨海县| 游戏| 平昌县| 叶城县| 杭州市| 贵溪市| 固原市| 金山区| 湛江市|