关于数据库中聚合函数和Group by的一个常犯错误

来源:互联网 发布:程序员出差是干什么的 编辑:程序博客网 时间:2024/05/16 00:59
SELECT COUNT(*),COURSE_NAME FROM dbo.T_COURSE

这是错误的,因为count后面不能在有列或者需要加上+ group by course_name

这是因为既有Count统计,又有单列,,,你让sql server怎么显示,,,不group by肯定出错,,,

针对特定列 求count,你要搞告诉他那个列么,不然计算机怎么晓得你的想法

再例如

SELECT  COUNT(*) AS USER_NUM,        b.COURSE_NAME ,        ( SELECT    COUNT(*)          FROM      dbo.T_USER_COURSE_RECORD c          WHERE     c.COURSE_ID = a.COURSE_ID AND c.STATUS=1        )/ AS COMPLETEFROM    dbo.T_USER_COURSE_RECORD a        JOIN dbo.T_COURSE b ON a.COURSE_ID = b.COURSE_ID                               AND a.COURSE_ID = 3GROUP BY b.COURSE_NAME ,        a.COURSE_ID


 


这里a.COURSE_ID前面有用到,那么你必须后面group by这样前面才能是识别

自己今天碰到的问题,记录下~~~