繁体   English   中英

如何按1个元素分组并求和?

[英]How to group by 1 element and get sum of other?

我有一张桌子,像这样: 我的数据库 现在,我正在尝试获取所有called var的列和持续时间的总和。 现在我正在尝试:

select called,SUM(duration) as dursum,time,CONVERT(VARCHAR(8), time, 4) AS Batch  
from Calls
where caller='somevalue'
group by called,time
order by called

现在的问题是,我想是因为我也按time排序,所以我并没有真正获得不同的值,我多次获得相同的数字,并且总和的作用相同,只对部分行求和。

我无法group by time删除group by time因为使用SUM函数会导致错误。

再次,我希望结果每天有一个被叫号码并且硬核包含所有持续时间总和, 以某种方式按批处理列进行分组...

我该如何解决?

您是对的,没有按时间分组会为您带来正确的结果集。 但是,发生的错误很容易解释:这是由于在select子句中选择了“ time,CONVERT(VARCHAR(8),time,4)AS Batch”导致的,因此您只需要对时间字段(例如MAX(time),CONVERT(VARCHAR(8),MAX(time),4)AS批处理。

最好的祝福

好吧,这就是我最终解决它的方式:

select called,SUM(duration) as dursum, dateadd(DAY,0, datediff(day,0, time))as Batch2 ,CONVERT(VARCHAR(8), time, 4) AS Batch  
from Calls
where caller='0502081971'
group by called, dateadd(DAY,0, datediff(day,0, time)),CONVERT(VARCHAR(8), time, 4)
order by called

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM