1. 程式人生 > >sql語句常見問題集錦

sql語句常見問題集錦

一、group by 、where、having問題

  1. group by要求返回的所有欄位,要麼出現在聚合函式(avg、sum、count、max、min等)中,要麼出現Group By後面作為分組依據,不然高版本的mysql會報錯。如:
    select albumId,programId,sum(playNum) as playNum,sum(onlineNum ) as onlineNum from mam_content group by albumId;
    這條sql語句中programId既沒出現在聚合函式中,也沒像albumId出現在group by後面作為分組依據,所以會報錯。當然此種錯誤可以mysql的配置檔案中設定忽略,忽略時,programId會在多個結果中選一個作為它的最終結果。

  2. 用了group by時,where是在聚合函式求結果前進行篩選,而having是在聚合函式求完結果後進行篩選。如:

    select countTime,SUM(onlinePlayNum) as onlinePlayNum,SUM(downloadNum) as downloadNum from stat_content where albumId >100 group by countTime