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

你可能感兴趣的:(MySQL)