sql - 在 varchar 上使用 sum 聚合函数
问题描述
我有一个查询,它检索两个 DateTime 列(TimeOut 和 TimeIn)之间的差异以及项目名称(ItemName):
SELECT ItemName,CONVERT(nvarchar,(TimeOut- TimeIn), 108) AS TimeTaken FROM TimeTable
这为我提供了所有值,例如我想要的值,但我想按 ItemName 对其进行分组,以便获得常见项目所用时间的总和。
我尝试这样做,但效果不佳。任何建议都会有所帮助,谢谢!
SELECT ItemName,sum(CONVERT(nvarchar,(TimeOut- TimeIn), 108)) AS TimeTaken FROM TimeTable group by ItemName
我无法对 varchar 求和,但我该怎么办?
我想要类似的东西:
Pen 08:00
Pencil 13:00
Marker 53:00
代替:
Pen 04:00
Pencil 05:00
Pen 04:00
Marker 13:00
Marker 40:00
Pencil 08:00
解决方案
使用DATEDIFF
功能
SELECT ItemName,sum( DATEDIFF(SECOND, TimeOut, TimeIn)) AS TimeTaken FROM TimeTable group by ItemName
推荐阅读
- python - 对每一行应用一个函数,其中函数使用 DataFrame 的所有先前行
- windows - Git 在 Windows 上检查具有 LF 行结尾的特定文件类型
- angular - 使用 Angular 自定义构建器进行资产修订
- c++ - For循环遍历所有值并在未找到变量时重复输入过程 - C++
- python-3.x - 如何在 Surprise 中拆分数据集和交叉验证?
- php - 使用 cURL 和 PHP 发送嵌套的 json 发布请求很热
- sql - 有没有 Group by 的子句
- testing - testcafe await t.expect 超时是不稳定的
- c# - Entity Framework Core 删除主键后保存外键值
- react-native - 如果我输入多个空格,检查文本输入是否为空失败