none
請問GROUP BY 語法可以跟 COUNT 語法合用嗎?在多個WHERE條件下.. RRS feed

  • 問題

  • 簡單描述一下問題..

    目前A可以用GROUP BY顯示一筆  ..第2第3欄位用SUM加總數字..但是第4欄位計算為0的有幾筆確有些不太懂..因為COUNT是搭配WHERE  第4欄='0'   但是我WHERE卻有多個條件..把=0加進去的話會導致筆數顯示不正確....所以不太曉得該如何下手...不曉得各位看的懂我的問題嗎?謝謝指教!

    假設資料庫內容為:

    A  10   10   0     <--第一筆

    A  20   10   2     <--第二筆

    A  30   10   0     <--第三筆

    B  10   20   0     <--第四筆

    B  20   10   5     <--第五筆

    ==================

    A  60   30   2(在A下第4個欄位有幾個0)  1(不為0有幾筆)   <--顯示結果

    B  30   30   1(在B下第4個欄位有幾個0)  1(不為0有幾筆)   <--顯示結果

     

    謝謝2位的回答~~我是用阿尼的方法解決了~~

    • 已編輯 night-mind 2010年9月8日 上午 03:19
    2010年9月7日 上午 08:43

解答

  • 不能用COUNT,要用SUM,例如:

    SUM(CASE WHEN 條件成立 THEN 1 ELSE 0 END)

    2010年9月7日 上午 09:09
  • 可以用兩個子查詢組。

    你如果不會可以先建兩個 View ,再用 LEFT JOIN 或 INNER JOIN 得到你的結果,最後再把兩個查詢抽出來重組 SQL 語法即可。

    這邊有一些類似你需求的基本 View 可以參考,這樣你兩個 View 就可以建起來了。

    http://tlcheng.spaces.live.com/blog/cns!145419920BFD55A7!4902.entry


    論壇是網友平等互助 保證解答請至 微軟技術支援服務
    提問時,錯誤情境描述與錯誤訊息很重要,情境描述包含你做了什麼,預期的結果與實際發生的結果。一個最爛的問法範例:「我的電腦電腦怎麼不能開機?」誰知道你家是不是沒電還是你根本找不到電源鈕。
    • 已標示為解答 night-mind 2010年9月8日 上午 03:18
    2010年9月7日 下午 02:15

所有回覆

  • 不能用COUNT,要用SUM,例如:

    SUM(CASE WHEN 條件成立 THEN 1 ELSE 0 END)

    2010年9月7日 上午 09:09
  • 可以用兩個子查詢組。

    你如果不會可以先建兩個 View ,再用 LEFT JOIN 或 INNER JOIN 得到你的結果,最後再把兩個查詢抽出來重組 SQL 語法即可。

    這邊有一些類似你需求的基本 View 可以參考,這樣你兩個 View 就可以建起來了。

    http://tlcheng.spaces.live.com/blog/cns!145419920BFD55A7!4902.entry


    論壇是網友平等互助 保證解答請至 微軟技術支援服務
    提問時,錯誤情境描述與錯誤訊息很重要,情境描述包含你做了什麼,預期的結果與實際發生的結果。一個最爛的問法範例:「我的電腦電腦怎麼不能開機?」誰知道你家是不是沒電還是你根本找不到電源鈕。
    • 已標示為解答 night-mind 2010年9月8日 上午 03:18
    2010年9月7日 下午 02:15