sql語句常見問題集錦
阿新 • • 發佈:2019-02-04
一、group by 、where、having問題
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會在多個結果中選一個作為它的最終結果。用了group by時,where是在聚合函式求結果前進行篩選,而having是在聚合函式求完結果後進行篩選。如:
select countTime,SUM(onlinePlayNum) as onlinePlayNum,SUM(downloadNum) as downloadNum from stat_content where albumId >100 group by countTime