ORACLE 统计每一列的和,该怎么解决
1个回答
展开全部
select decode(L.A, 1, M.A, 0),
decode(L.B, 1, M.B, 0),
decode(L.C, 1, M.C, 0),
decode(L.D, 1, M.D, 0)
from (select sum(decode(A, -1, 1, 0)) A,
sum(decode(B, -1, 1, 0)) B,
sum(decode(C, -1, 1, 0)) C,
sum(decode(D, -1, 1, 0)) D
from G) L,
(select max(A) A, max(B) B, max(C) C, max(D) D from g) M
把这个表先看成两个表一个是没条件出来的最大值,一个是看有没有负一这个值如果有则是求出来的最大值就OK。
开始你没列出表结构来我就自己写的呵呵,希望给分。这个写法没问题。
decode(L.B, 1, M.B, 0),
decode(L.C, 1, M.C, 0),
decode(L.D, 1, M.D, 0)
from (select sum(decode(A, -1, 1, 0)) A,
sum(decode(B, -1, 1, 0)) B,
sum(decode(C, -1, 1, 0)) C,
sum(decode(D, -1, 1, 0)) D
from G) L,
(select max(A) A, max(B) B, max(C) C, max(D) D from g) M
把这个表先看成两个表一个是没条件出来的最大值,一个是看有没有负一这个值如果有则是求出来的最大值就OK。
开始你没列出表结构来我就自己写的呵呵,希望给分。这个写法没问题。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询