91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

含有GROUP BY子句的查詢中該怎么顯示

發布時間:2022-01-17 11:19:12 來源:億速云 閱讀:134 作者:柒染 欄目:數據庫

含有GROUP BY子句的查詢中該怎么顯示,針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。

  在SQLServer數據庫查詢中,為了對查詢結果進行對比、分析,我們經常會用到GROUPBY子句以及COUNT()函數來對查詢結果進行分類、統計等。但是我們在使用的過程中往往會存在一些問題。下面億速云小編來講解下含有GROUPBY子句的查詢中如何顯示?

  含有GROUPBY子句的查詢中如何顯示

  1.問題:

  如下ExampleTable表,求各種類(CategoryID)滿足Flag等于1的記錄數。

  IDFlagCategoryID

  111

  211

  312

  412

  503

  理想的結果應該如下:

  CategoryIDTotalNum

  12

  22

  30

  初看此問題,我們很容易寫出如下語句:

  SELECTCategoryID,COUNT(1)ASTotalNumFROMExampleTableWHEREflag=1GROUPBYCategoryID

  可運行之后得到的結果如下:

  CategoryIDTotalNum

  12

  22

  沒有CategoryID=3,TotalNum=0的記錄。

  含有GROUPBY子句的查詢中如何顯示

  2.原因分析:

  造成以上結果的原因是因為在SELECT語句中WHERE子句先于GROUPBY執行,因此在執行GROUPBY子句時,表中的記錄已經將Category=3的記錄過濾,分組處理中自然不會計算在內。

  SQLSELECT語句完整的執行順序:

  1、FROM子句組裝來自不同數據源的數據;

  2、WHERE子句基于指定的條件對記錄進行篩選;

  3、GROUPBY子句將數據劃分為多個分組;

  4、使用聚集函數進行計算;

  5、使用HAVING子句篩選分組;

  6、計算所有表達式;

  7、使用ORDERBY對結果進行排序。

  3.解決方案:

  構造含有所有CategoeyID的結果集與其上語句所得結果集進行連接,并利用NULL替換函數(如SQLSERVER中的ISNULL()、ORACLE中的NVL())將NULL替換為0。

  示例語句如下:SELECTDISTINCTMainTable.CategoryID,ISNULL(SubTable.SubNum,0)ASTotalNumFROMExampleTableASMainTableLEFTJOIN(SELECTCategoryID,COUNT(1)ASSubNumFROMExampleTableWHEREflag=1GROUPBYCategoryID)ASSubTableONMainTable.CategoryID=SubTable.CategoryID

  執行后即可返回正確的結果:

  CategoryIDTotalNum

  12

  22

  30

關于含有GROUP BY子句的查詢中該怎么顯示問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注億速云行業資訊頻道了解更多相關知識。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

天柱县| 绥化市| 青浦区| 元谋县| 萝北县| 兴文县| 揭西县| 闽侯县| 山东| 西安市| 龙口市| 竹溪县| 巨鹿县| 钦州市| 集贤县| 新邵县| 玉龙| 卢氏县| 阿坝县| 上虞市| 舟山市| 南康市| 花垣县| 浏阳市| 泌阳县| 泉州市| 大安市| 隆安县| 荥阳市| 利津县| 德化县| 辽阳市| 婺源县| 钦州市| 北票市| 柏乡县| 惠来县| 甘南县| 高要市| 沁水县| 黑山县|