久综合色-久综合网-玖草影视-玖草资源在线-亚洲黄色片子-亚洲黄色片在线观看

Hello! 歡迎來(lái)到小浪云!


SQL 子句執(zhí)行順序:先 HAVING 還是先 SELECT?


SQL 子句執(zhí)行順序:先 HAVING 還是先 SELECT?

先 having 還是先 selectsql 子句執(zhí)行順序揭秘

sql 語(yǔ)句中,having 子句用于篩選組內(nèi)的記錄,而 select 子句用于選擇要顯示的列。那么,是先執(zhí)行 having 子句還是 select 子句呢?

傳統(tǒng)觀點(diǎn)認(rèn)為,先執(zhí)行 having 子句,然后再執(zhí)行 select 子句。然而,示例代碼中似乎與這一觀點(diǎn)相悖。代碼如下:

SELECT sum(num) AS all_num FROM table GROUP BY id HAVING all_num > 50
登錄后復(fù)制

執(zhí)行結(jié)果顯示,先執(zhí)行了 select 語(yǔ)句,即計(jì)算了 all_num,然后再執(zhí)行 having 子句,對(duì)分組后的結(jié)果進(jìn)行了篩選。

原因

這種現(xiàn)象背后的原因并非 having 子句優(yōu)先執(zhí)行,而是因?yàn)?select 語(yǔ)句在 sql 中具有雙重作用。

一方面,select 子句可以用于選擇要顯示的列。但在本例中,select 語(yǔ)句沒(méi)有選擇任何現(xiàn)有列,而是生成了一個(gè)新列 all_num。因此,在這個(gè)例子中,select 語(yǔ)句不執(zhí)行任何選擇性操作。

另一方面,select 語(yǔ)句也可以用于聚合函數(shù)。本例中,select 語(yǔ)句計(jì)算了每個(gè)組的 num 列的總和,并將結(jié)果存儲(chǔ)在 all_num 列中。因此,在此場(chǎng)景下,select 語(yǔ)句實(shí)際上是一個(gè)聚合操作。

執(zhí)行順序

當(dāng) select 語(yǔ)句包含聚合函數(shù)時(shí),sql 引擎的執(zhí)行順序如下:

  1. 分組(group by 子句)
  2. 聚合(select 子句中的聚合函數(shù)
  3. 篩選(having 子句)
  4. 選擇(select 子句選擇要顯示的列)

因此,在示例代碼中,正確的執(zhí)行順序是:

  1. 按 id 列分組
  2. 計(jì)算每個(gè)組的 num 列的總和,并將其存儲(chǔ)在 all_num 列中
  3. 篩選出 all_num 大于 50 的組
  4. 選擇 all_num 列顯示結(jié)果

相關(guān)閱讀

主站蜘蛛池模板: 国产精品欧美一区二区三区不卡 | 久久精品中文字幕首页 | 精品欧美日韩一区二区三区 | 欧日韩视频777888 | 成人永久免费视频网站在线观看 | 欧美三级黄色大片 | 精品久久久久久久久久香蕉 | 国产成人福利视频在线观看 | 国产一区二区三区亚洲欧美 | 国产欧美视频在线观看 | 成人毛片免费视频 | 国产精品国产亚洲精品不卡 | xxx国产hd| 欧美另类极品 | 手机免费看毛片 | 午夜影院0606| 国产免费一区二区三区在线 | 国产精品色内内在线播放 | 特级淫片国产免费高清视频 | 全国最大色成免费网站 | 香港台湾经典三级a视频 | 中文字幕在线视频在线看 | www.久久| 免费观看a毛片一区二区不卡 | 91精品国产色综合久久不 | 久草视频播放 | 玖玖影院在线观看 | 国产黄色大片网站 | 久草视频在线网 | 国产免费爱在线观看视频 | 国产精品夜色视频一级区 | 亚洲人成片在线观看 | 国产在线步兵一区二区三区 | 日韩中文字幕视频 | 国产成人精品天堂 | 伊大人香蕉久久网 | 亚洲综合日韩欧美一区二区三 | 精品欧美一区二区三区免费观看 | 亚洲欧美在线观看视频 | 亚洲天堂在线观看视频 | 成人国产欧美精品一区二区 |