第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

HAVING和WHERE有什么區(qū)別?

HAVING和WHERE有什么區(qū)別?

子衿沉夜 2019-08-29 16:36:43
HAVING和WHERE有什么區(qū)別?我必須用錯誤的方式搜索,或者我有一個愚蠢的時刻。聲明HAVING和聲明之間的區(qū)別WHERE是SQL SELECT什么?編輯:我已經(jīng)將史蒂文的答案標記為正確答案,因為它包含鏈接上的關(guān)鍵信息:何時GROUP BY不使用,HAVING表現(xiàn)得像一個WHERE條款我見過的WHERE情況沒有GROUP BY,也是我的困惑開始的地方。當(dāng)然,在您知道這一點之前,您無法在問題中指定它。非常感謝所有非常有啟發(fā)性的答案。
查看完整描述

3 回答

?
青春有我

TA貢獻1784條經(jīng)驗 獲得超8個贊

HAVING指定SELECT語句中使用的組或聚合函數(shù)的搜索條件。

資源


查看完整回答
反對 回復(fù) 2019-08-29
?
函數(shù)式編程

TA貢獻1807條經(jīng)驗 獲得超9個贊

HAVING:用于在聚合發(fā)生檢查條件。
WHERE:用于在聚合發(fā)生之前檢查條件。

這段代碼:

select City, CNT=Count(1)From AddressWhere State = 'MA'Group By City

為您提供MA中所有城市的表格以及每個城市的地址數(shù)量。

這段代碼:

select City, CNT=Count(1)From AddressWhere State = 'MA'Group By CityHaving Count(1)>5

為您提供MA的城市表格,其中包含超過5個地址和每個城市的地址數(shù)量。


查看完整回答
反對 回復(fù) 2019-08-29
?
莫回?zé)o

TA貢獻1865條經(jīng)驗 獲得超7個贊

對我來說最重要的一點是:如果HAVING從SQL語言中刪除,那么生活會像以前一樣或多或少地繼續(xù)下去。當(dāng)然,少數(shù)查詢需要使用派生表,CTE等進行重寫,但結(jié)果可能更容易理解和維護。也許供應(yīng)商的優(yōu)化程序代碼需要重寫才能解決這個問題,這也是行業(yè)內(nèi)部改進的機會。

現(xiàn)在考慮WHERE從語言中刪除一下。這一次,現(xiàn)有的大多數(shù)查詢都需要在沒有明顯替代構(gòu)造的情況下進行重寫。編碼器必須具有創(chuàng)造性,例如內(nèi)連接到已知包含恰好一行的表(例如DUAL在Oracle中),使用該ON子句來模擬先前WHERE子句。這樣的結(jié)構(gòu)將是人為的; 很明顯,語言中缺少某些內(nèi)容,因此情況會更糟。

TL; DR我們HAVING明天可能輸了,事情不會更糟,可能更好,但同樣不能說WHERE。


從這里的答案來看,似乎很多人都沒有意識到一個HAVING條款可以在沒有條款的情況下使用GROUP BY。在這種情況下,該HAVING子句將應(yīng)用于整個表表達式,并且只需要在SELECT子句中出現(xiàn)常量。通常,該HAVING條款將涉及聚合。

這比聽起來更有用。例如,請考慮此查詢以測試該name列是否對于以下所有值都是唯一的T

SELECT 1 AS result
  FROM THAVING COUNT( DISTINCT name ) = COUNT( name );

只有兩種可能的結(jié)果:如果HAVING子句為true,則結(jié)果為包含該值的單行1,否則結(jié)果將為空集。


查看完整回答
反對 回復(fù) 2019-08-29
  • 3 回答
  • 0 關(guān)注
  • 743 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號