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

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)閱讀

主站蜘蛛池模板: 国产91精品一区二区 | 日韩精品在线观看免费 | 欧美高清一区 | 亚洲欧美不卡中文字幕 | 午夜黄色网 | 国产三级a三级三级午夜 | 日韩国产中文字幕 | 免费人成在线观看视频不卡 | 成人午夜免费观看 | 国产精品成人一区二区不卡 | 操操网站 | 草草草在线 | 国产一区二区三区免费看 | 国产日本在线视频 | 精品国产三级v | 美女视频黄视大全视频免费网址 | 美女很黄免费 | 国产91av在线 | 精品国产一区二区三区在线观看 | 麻豆日韩 | 午夜淫片| 看国产一级毛片 | 毛片基地免费视频a | 国产精品一区二区丝瓜 | 一级作爱视频免费观看 | 久久www免费人成_看片高清 | 手机看片在线精品观看 | 国产福利一区二区在线精品 | 亚洲男女视频 | 欧美特黄视频在线观看 | 日韩理论视频 | 综合欧美视频一区二区三区 | 免费一看一级欧美 | 午夜成人免费影院 | 亚州不卡| 国产精品无打码在线播放9久 | 成人精品视频网站 | 中国成人在线视频 | 国产一久久香蕉国产线看观看 | 亚洲美女色成人综合 | 国产成人精品久久一区二区小说 |