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

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

主站蜘蛛池模板: 欧美人成片免费看视频不卡 | 毛片基地免费视频a | 91成人在线视频 | 成人亚洲综合 | 欧美xxxwww| 国产精品不卡无毒在线观看 | 国产乱码精品一区二区三上 | 欧美视频亚洲 | 精品在线免费观看 | 欧美成人网7777视频 | 国产一区二区三区不卡免费观看 | www.av在线免费观看 | 日韩久久一区二区三区 | 国产欧美日韩免费一区二区 | 免费人成激情视频在线观看冫 | 国产精品高清全国免费观看 | 美国毛片免费一级 | 性久久久久久久久 | 国产一线视频在线观看高清 | 亚洲精品国自产拍影院 | 奇米影视7777久久精品 | 又黄又湿又爽吸乳视频 | 亚洲高清视频在线观看 | 亚洲另类视频 | 91精品手机国产在线能 | 国产成综合 | 日韩一区二区三区在线免费观看 | 国产精品久久久久久久网站 | 国产精品高清在线 | 曰韩一级 | 国产三级毛片视频 | 在线亚洲观看 | 国产麻豆入在线观看 | 久久精品视频免费 | 美女黄色在线网站大全 | 亚洲国产人成中文幕一级二级 | 国产一区亚洲二区三区毛片 | 中文字幕亚洲一区二区三区 | 在线中文字日产幕 | 日韩精品免费一区二区三区 | 亚洲欧美国产精品专区久久 |