sql-server – T-SQL GROUP BY:包含其他分组列的最佳方式
发布时间:2020-05-27 21:52:36 所属栏目:MsSql 来源:互联网
导读:我是一个 MySQL用户,试图将一些事情移交给MS SQL Server. 我加入了几张表,并通过GROUP BY汇总了一些列. 一个简单的例子就是员工和项目: select empID, fname, lname, title, dept, count(projectID)from employees E left join projects P on E.empID = P.pr
|
我是一个 MySQL用户,试图将一些事情移交给MS SQL Server. 我加入了几张表,并通过GROUP BY汇总了一些列. 一个简单的例子就是员工和项目: select empID,fname,lname,title,dept,count(projectID) from employees E left join projects P on E.empID = P.projLeader group by empID …这可以在MySQL中工作,但MS SQL更严格,并且要求将所有内容都包含在聚合函数中,或者是GROUP BY子句的一部分. 所以,当然,在这个简单的例子中,我假设我可以在group by子句中加上额外的列.但是我正在处理的实际查询是相当复杂的,并且包括对一些非聚合列执行的一些操作,例如,它会被真正地丑陋,试图将它们全部包含在group by子句中. 那么有更好的方法来做到这一点吗? 解决方法你可以让它处理这些行:select e.empID,projectIDCount from ( select empID,count(projectID) as projectIDCount from employees E left join projects P on E.empID = P.projLeader group by empID ) idList inner join employees e on idList.empID = e.empID 这样,您可以通过操作避免额外的组,您可以获取所需的任何数据.此外,您还有机会在某些情况下良好利用索引(如果您没有返回完整的信息),并且可以更好地与分页结合使用. (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- ms-access – 如何将SubSonic与MS Access数据库一起使用
- 数据库 – ODBC和OleDB有什么区别?
- ms访问 – 访问数据项目的优点和缺点(MS Access前端与SQL S
- SQL Server 文件系统mdf, ndf, ldf ...解析
- MySQL5.6 Replication主从复制(读写分离) 配置完整版
- 将默认值传递给Table Valued参数 – SQL Server
- SQL Server和.NET:在代码中插入失败(静默!),但在手动运行
- sql-server-2008-r2 – SQL Server“master”数据库中的表会
- SqlServer快速检索某个字段在哪些存储过程中(sql 语句)
- SQL Server 2008怎样添加自增列实现自增序号
