如何在按部分分组的查询中使用子查询?
我使用SQL Server 2008 R2和Delphi 2010
我收到此错误:
Cannot perform an aggregate function on an expression
containing an aggregate or a sub query.
像这个查询:
select
t1.sen,
sum(t1.d1)as d1,
sum(t1.d2)as d2,
sum(t1.d1+t1.d2) as d_sum,
Round((sum((1000*(t1.d1+t1.d2))/(9500-(
select sum(t2.t_shab+t2.t_rooz)
from tbl1 t2
where FCode=81 AND DCode=1 AND t2.sen<=t1.sen
)))),1) as SSS
from
tbl1 t1
where
FCode = 81
AND DCode = 1
按t1.sen分组
这是真实的方式
create function getSumBSen2(@pfcode INT, @pdcode INT, @pSen INT) returns int
as
begin
declare @r int;
select
@r= sum(t2.t_shab + t2.t_rooz)
from
tbl1 t2
where
t2.FCode = @pfcode
and t2.DCode = @pdcode
and t2.sen <= @pSen;
return (@r);
end;
GO
select
t1.sen,
sum(t1.d1) as d1,
sum(t1.d2) as d2,
sum(t1.d1 + t1.d2) as d_sum,
Round((sum((1000*(t1.d1+t1.d2)+0.01)/(9500-(dbo.getSumBSen2(t1.FCode, t1.DCode, t1.sen))))),1) as SSS
from
tbl1 t1
where
t1.FCode = 81
and t1.DCode = 1
group by
t1.sen;
问题内容: 我正在尝试在postgres中的查询中使用group by。我无法按照我想要的方式对其进行工作,以便根据需要对结果进行分组。 这是对我刚刚回答的递归查询的另一个堆栈问题的扩展。但是现在我需要能够将结果分组到最终查询的root_id列上。这是之前的查询: 这是我想做的,以便将具有相同parent_comment_id的所有记录保存在一起。 可能有许多记录返回了相同的parent_comm
我有一个表abc,其中可以针对一个UserId有一个或多个行。abc表有列值。我希望结果是每个UserId值的总和。 示例:userid1- 我现在拥有的: 结果:它单独返回每行的总和。所以我有这样的: 用户标识1- 我应该更改或添加什么来完成查询? PS.我知道这是一个非常常见/简单的解决方案,但似乎找不到任何解决方案。:(
我必须计算ARPU(收入/#用户),但我得到了这个错误: 子查询使用外部查询第7行的未分组列“usage_records.date”:WHERE created_at<=date_trunc('day',usage_records.d...^) null
问题内容: 我正在尝试计算表中的最大值以及该表中的其他值。但是,我为此做的表不是“真实”表,而是由子查询生成的表。这给我带来了问题,因为我认为如果不重新指定整个子查询就无法两次加入它。 我目前有一个SQL Server解决方案,使用,但我正在寻找与DBMS无关的版本,因为该项目的单元测试在不具有此功能的Sqlite DB中运行。 如果它们有用,这是架构和我的SQL Server特定查询: Cour
问题内容: 我需要按Field1的值对所有记录进行分组,并为每个组计算Field2的最大值。因此,有什么方法可以使最大聚合作用在同一查询中的多个组上? 问题答案:
问题内容: 我有如下查询 我想以某种方式重用 我简化了上面的查询,但是实际上上面的选择是巨大而复杂的。我不想负担确保两者同步 我没有任何以编程方式重用它的方法。排除了T-SQL。我只能写简单的查询。这是应用程序的限制。 有没有一种方法可以在单个语句中重用相同的子查询 问题答案: 如果您使用的是SQL Server 2005+,请使用公用表表达式(CTE):