我的视图:
JobId,
ClientName,
ClientAddress,
Cost
myview中的示例数据:
1, John, 23 road, 25
1, John, 23 road, 20
1, John, 23 road, 5
2, James, 6 road, 10
2, James, 6 road, 4
我要计算每个jobid的成本总和,还要返回clientname、clientaddress等。。这个视图很大,而且必须对clientname、clientaddress进行分组,这需要很长时间才能运行。
处理这个问题最好的方法是什么?
我目前的问题是:
SELECT ClientName,
ClientAddress,
SUM(Cost) as TotalCost
FROM MyView
GROUP BY JobId, ClientName, ClientAddress, TotalCost
我追求的结果:
John, 23 road, 50
James, 6 road, 14
3条答案
按热度按时间sr4lhrrt1#
如果每个jobid的clientname和clientaddress总是相同的,那么这个(尽管很笨拙)就可以工作了:
在这种假设下,您真正想要分组的是jobid,因为其他所有内容要么是不变的,要么是聚合目标。
kiayqfof2#
如果要计算每行的总数,可以使用窗口函数:
pobjuy323#
如果每个工作id的名称和地址都相同,我认为这应该有效,您不应该在中使用totalcost
group by
```SELECT ClientName,
ClientAddress,
SUM(Cost) as TotalCost
FROM MyView
GROUP BY ClientName, ClientAddress