Sql 不使用group by语法的特定条件下每个id的值总和
我想在case语句中对YN列中具有some id和'Y'的值求和,因此我不能使用groupby语法。请参见下面的示例和我的代码:表TSql 不使用group by语法的特定条件下每个id的值总和,sql,oracle,Sql,Oracle,我想在case语句中对YN列中具有some id和'Y'的值求和,因此我不能使用groupby语法。请参见下面的示例和我的代码:表T ID Value YN 1 4 Y 1 6 Y 2 3 N 请求: select case when YN = 'Y' then ( select sum(Value) from T group by ID) else Value end as TotalResult; 你能帮我只显示T
ID Value YN
1 4 Y
1 6 Y
2 3 N
请求:
select
case when YN = 'Y'
then ( select sum(Value) from T group by ID)
else Value
end as TotalResult;
你能帮我只显示Totalresult吗 仅仅因为您使用了
分组依据
,并不意味着您必须在选择
中包含该列
SELECT
SUM(Value) AS TotalResult
FROM
T
GROUP BY
ID, YN
=>
Total Result
--------------
10
3
然而,您需要什么样的查询还不清楚,因为您没有清楚地说明您希望查询实际做什么,或者示例数据的预期结果应该是什么。您完全可以在同一语句中使用
case
表达式和groupby
子句;我不明白你为什么认为一个排除了另一个。我也不确定您希望结果集是什么样子。你能澄清一下吗?提到您正在使用的RDBMS也很有帮助。我希望得到的结果是:TotalResult 10 3这是我想要得到的全部,如果我使用group by,那么我需要返回ID和TotalResult。你明白我的意思了吗?我只需要返回TotalResult我正在使用SQL developeri给出了一个示例,我正在执行的代码要复杂得多,当我尝试group by时,它返回的不是group by Expression仅仅因为您的实际代码更复杂,并不会阻止您制作一个完整的示例来演示您所面临的特定复杂性。。。