sql (case)
題目﹕
reate table tst (c1 integer, c2 integer, c3 integer);
insert into tst values (1, null, 150);
insert into tst values (1, 1, 80);
insert into tst values (1, 2, 90);
insert into tst values (1, 1, 130);
insert into tst valuse (1, 3, 120);
SQL> select * from tst;
C1 C2 C3
---------- ---------- ----------
1 150
1 1 80
1 2 90
1 1 130
1 3 120
要求结果为
C1 C2 C3_SUM
---------- ---------- ----------
1 192
1 1 210
1 2 90
1 3 120
以C1/C2分组对C3求和,如果C2为空,C3的和应该包括同组中其他C2非空行的10%.
如果单纯分组
则为
C1 C2 C3_SUM
1 NULL 150
特殊要求为让其包含 10% * (80+90+130+120) = 42
最后结果为 150 + 42 = 192
答案﹕
[@[email protected]]
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/701414/viewspace-905266/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/701414/viewspace-905266/
上一篇: 一个求乘法逆元的方法
下一篇: java 单元测试