SQL Server中的聚合函数

Wer*_*eta 3 sql sql-server

我对SQL Server感到非常沮丧.我只是想加入3个表,非常简单,并且很容易在mysql中完成.但在SQL Server中,它一直告诉我要包含tbl_department.deptname在一个聚合函数中.但是我可以在一个简单的字符串中使用哪些聚合函数?

SELECT      
    COUNT(tblStudent_Department.student_id) AS Expr2, 
    tbl_department.deptname AS Expr1
FROM          
    tblStudent_Department 
LEFT OUTER JOIN
    tbl_department ON tblStudent_Department.deptcode = tbl_department.deptcode 
LEFT OUTER JOIN
    tblStudent ON tblStudent_Department.student_id = tblStudent.studentid
GROUP BY 
    tblStudent_Department.deptcode
Run Code Online (Sandbox Code Playgroud)

请帮忙.

And*_*mar 7

数据库不知道如果你分组deptcode,你就是隐式分组deptname.您必须通过将列添加到以下内容来告诉SQL Server group by:

GROUP BY tblStudent_Department.deptcode, tbl_department.deptname
Run Code Online (Sandbox Code Playgroud)

MySQL的特殊之处在于,如果不指定聚合,它基本上会选择一个随机行.这可能会产生误导并导致错误的结果.与许多其他事情一样,MySQL具有更实用的解决方案,而SQL Server则更为正确.