Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 不使用group by语法的特定条件下每个id的值总和_Sql_Oracle - Fatal编程技术网

Sql 不使用group by语法的特定条件下每个id的值总和

Sql 不使用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

我想在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;

你能帮我只显示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仅仅因为您的实际代码更复杂,并不会阻止您制作一个完整的示例来演示您所面临的特定复杂性。。。