SQL SERVER GRUOUP BY 分组问题

发布于 2022-09-11 19:49:24 字数 1389 浏览 9 评论 0

我新建的一个视图,结构如图,想按照时间和姓名分组。将timehours 相加
clipboard.png

仅通过时间报错:

SELECT TimeItemFromDate,Name,Department,projectCode,ProjectName,SUM(TimeHours) FROM test GROUP BY TimeItemFromDate
SELECT TimeItemFromDate,Name,Department,projectCode,ProjectName,SUM(TimeHours) FROM test GROUP BY TimeItemFromDate
> Msg 8120, Level 16, State 1, Server WIN-N830FBLO8HK\TECHEXCEL, Procedure , Line 0
选择列表中的列 'test.Name' 无效,因为该列没有包含在聚合函数或 GROUP BY 子句中。
> [42000] [Microsoft][SQL Server Native Client 11.0][SQL Server]选择列表中的列 'test.Name' 无效,因为该列没有包含在聚合函数或 GROUP BY 子句中。 (8120)

> 时间: 0.014s

通过时间和名字,会报第三列。

SELECT TimeItemFromDate,Name,Department,projectCode,ProjectName,SUM(TimeHours) FROM test GROUP BY TimeItemFromDate,Name
SELECT TimeItemFromDate,Name,Department,projectCode,ProjectName,SUM(TimeHours) FROM test GROUP BY TimeItemFromDate,Name,Department
> Msg 8120, Level 16, State 1, Server WIN-N830FBLO8HK\TECHEXCEL, Procedure , Line 0
选择列表中的列 'test.projectCode' 无效,因为该列没有包含在聚合函数或 GROUP BY 子句中。
> [42000] [Microsoft][SQL Server Native Client 11.0][SQL Server]选择列表中的列 'test.projectCode' 无效,因为该列没有包含在聚合函数或 GROUP BY 子句中。 (8120)

> 时间: 0.017s

百度得到的Select指定的每一列都应该出现在Group By子句中,那我要输出同样的结构,应该怎么写?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

我偏爱纯白色 2022-09-18 19:49:24

group by 的功能是按照某一列分组,分组后的数据结构变成 {key, value} 型,key 为 group by 的字段,value 为根据 key 分组后的集合。分组后的数据结构已经改变,不能和之前的结构保持一致。

举个例子:

var array = [
    {name:'张三', department:'公司1', projectCode:'code1'},
    {name:'李四', department:'公司1', projectCode:'code2'},
    {name:'张三', department:'公司2', projectCode:'code3'}
];

//根据 name 字段进行 group by
groupby(array, 'name'); 

// 输出结果
{
    张三:[
        {name:'张三', department:'公司1', projectCode:'code1'},
        {name:'张三', department:'公司2', projectCode:'code3'}
    ],
    李四:[
        {name:'李四', department:'公司1', projectCode:'code2'}
    ]
}

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文