我对Oracle SQL中的'SUM'函数感到困惑
这是我用来计算所有名为ACC的“ APLFTSK_CODE”行的总时间的查询部分。结果列的名称为TIME_TOTAL_ACC
SUM (
CASE
WHEN
APLFTSK.APLFTSK_CODE = 'AAC'
AND APLCALL.APLCALL_NUM = APLTSK.APLTSK_APLCALL
THEN
ROUND((APLTSK.APLTSK_FEND - APLTSK.APLTSK_FBEGIN)* (24 * 60)*60)
END
)
这是我尝试“求和”时得到的结果
https://i.stack.imgur.com/OtFn3.jpg)
我只得到行的单个结果,而不是满足条件的所有行的总和。我希望所有符合条件的行都具有相同的结果“ 2403”。
我在案例内部的子选择上尝试了“分组依据”,但结果为“单行子查询返回多行”
SUM (
CASE
WHEN
APLFTSK.APLFTSK_CODE = 'AAC'
AND APLCALL.APLCALL_NUM = APLTSK.APLTSK_APLCALL
THEN
(
SELECT
ROUND((APLTSK.APLTSK_FEND - APLTSK.APLTSK_FBEGIN)* (24 * 60)*60)
FROM APLTSK, APLFTSK
GROUP BY APLTSK.APLTSK_NUM,APLFTSK.APLFTSK_CODE
)
END
)
在这种情况下,我不知道如何处理该功能。我阅读了几个有关如何在Oracle中使用'SUM'函数的示例,但我不知道如何将其应用于我的案例。在大多数情况下,“ SUM”用于获取同一行中不同列的结果。
预先感谢您的帮助
答案 0 :(得分:0)
您可能正在寻找fileABC=data.frame("id" = c(1:10),
"var1" = c("5*",8,1,4,"3*",5,6,7,"7*",1),
"var2" = c(7,4,6,"1*","8*",2,0,7,"0*",1))
fileQWE=data.frame("id" = c(1:10),
"var1" = c(7,"5*",8,1,4,"3*",5,"7*",6,2),
"var2" = c("8*",2,0,7,7,4,6,"1*","0*",1))
var1=c(fileABC$var1,fileQWE$var1)
var2=c(fileABC$var2,fileQWE$var2)
WANT = data.frame("id"=c(1:10,1:10)
"var1"=var1,
"var2"=var2,
"source"=c(rep("fileABC",10), rep("fileQWE",10)))
的解析版本,例如:
words.split(';');
尽管目前尚不清楚您可能进行的分组会如何影响结果。