如何实现SQL:同时实现sum()和条件count()语句?分组对组内所有数据求和,同时显示组内的符合条件的记录数 select id,sum(a),sum(b),sum(decode(sign(2 * a / b - 1),1,1,0))from tabname group by id; 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 14:26:50 jlanzpa817>create table tabname14:53:13 2 (14:53:13 3 id varchar2(10),14:53:13 4 a number,14:53:13 5 b number14:53:13 6 );表已创建。已用时间: 00: 00: 00.5114:53:13 jlanzpa817>14:53:13 jlanzpa817>insert into tabname values('1',34,567);已创建 1 行。已用时间: 00: 00: 00.3014:53:14 jlanzpa817>insert into tabname values('1',54,233);已创建 1 行。已用时间: 00: 00: 00.1014:53:14 jlanzpa817>14:53:14 jlanzpa817>insert into tabname values('2',12,18);已创建 1 行。已用时间: 00: 00: 00.1014:53:14 jlanzpa817>insert into tabname values('2',34,50);已创建 1 行。已用时间: 00: 00: 00.1014:53:14 jlanzpa817>insert into tabname values('2',45,120);已创建 1 行。已用时间: 00: 00: 00.1114:53:14 jlanzpa817>commit;提交完成。已用时间: 00: 00: 00.0014:53:14 jlanzpa817>14:53:14 jlanzpa817>select id,sum(a),sum(b),sum(decode(sign(2 * a / b - 1),1,1,0))14:53:21 2 from tabname group by id;ID SUM(A) SUM(B) SUM(DECODE(SIGN(2*A/B-1),1,1,0))---------- ---------- ---------- --------------------------------1 88 800 02 91 188 2已用时间: 00: 00: 00.6014:53:22 jlanzpa817> create tabele xxx as select id,sum(a),sum(b),sum(decode(sign(2 * a / b - 1),1,1,0))from tabname group by id;select * from xxx TO jlandzpa(jlandzpa) :可是我的 条件0.5是个变量,是通过前台页面传递过来的值得到的。可以是任何数值:0.1、0.2、0.3、……、1、1.5……那我该如何调整sign(2 * a / b - 1)而且我现在还要多加一列,那就是,不光对总的要求和,还要对符合条件的也另外求和ID SUM(A) SUM(B) count sum(a)1---------- ---------- ---------- ---------------------------------1 88 800 0 0 2 91 188 2 68 select id,sum(a),sum(b),sum(decode(sign(a / b - 变量),1,1,0)),sum(decode(sign(a / b - 变量),1,b,0))from tabname group by id; 我想问一下:sign(a / b - 变量)的语法含义是什么?为什么换成这样就可以了呢?34/567-0.5=-0.4412/18-0.5=0.1634/50-0.5=0.18sign(n) 是根据非负数来判别的吗?如果 n>0 sign(n)=1;如果n<0 sign(n)=-1;如果 n=0 sign(n)=0是这样的么?谢谢^_^ 分区索引创建时间长 关于linux数据库,其它用户对proc的访问权限 一個正則 启动了weblogic服务器后,访问weblogic的首页报错,还有就是myeclipce启动了,但是页面请求不出来。高手指点呀! NULL 与列值比较 急急!!! oracle中字符替换问题 备份Oracle数据库,Oracle进程占用系统内存急速往上涨,什么原因??? 怎样查看oracle的连接数???? 怎样生成大量数据的问题? 数据导出出错,有知道原因的吗,谢谢先了 SQL语句求教 怎么把sqlserver中某个表的数据倒入到oracle中的表中??两个表的结构相同.
14:53:13 2 (
14:53:13 3 id varchar2(10),
14:53:13 4 a number,
14:53:13 5 b number
14:53:13 6 );表已创建。已用时间: 00: 00: 00.51
14:53:13 jlanzpa817>
14:53:13 jlanzpa817>insert into tabname values('1',34,567);已创建 1 行。已用时间: 00: 00: 00.30
14:53:14 jlanzpa817>insert into tabname values('1',54,233);已创建 1 行。已用时间: 00: 00: 00.10
14:53:14 jlanzpa817>
14:53:14 jlanzpa817>insert into tabname values('2',12,18);已创建 1 行。已用时间: 00: 00: 00.10
14:53:14 jlanzpa817>insert into tabname values('2',34,50);已创建 1 行。已用时间: 00: 00: 00.10
14:53:14 jlanzpa817>insert into tabname values('2',45,120);已创建 1 行。已用时间: 00: 00: 00.11
14:53:14 jlanzpa817>commit;提交完成。已用时间: 00: 00: 00.00
14:53:14 jlanzpa817>
14:53:14 jlanzpa817>select id,sum(a),sum(b),sum(decode(sign(2 * a / b - 1),1,1,0))
14:53:21 2 from tabname group by id;ID SUM(A) SUM(B) SUM(DECODE(SIGN(2*A/B-1),1,1,0))
---------- ---------- ---------- --------------------------------
1 88 800 0
2 91 188 2已用时间: 00: 00: 00.60
14:53:22 jlanzpa817>
from tabname group by id;select * from xxx
可是我的 条件0.5是个变量,是通过前台页面传递过来的值得到的。
可以是任何数值:0.1、0.2、0.3、……、1、1.5……
那我该如何调整sign(2 * a / b - 1)而且我现在还要多加一列,那就是,不光对总的要求和,还要对符合条件的也另外求和ID SUM(A) SUM(B) count sum(a)1
---------- ---------- ---------- ---------------------------------
1 88 800 0 0
2 91 188 2 68
sum(decode(sign(a / b - 变量),1,b,0))
from tabname group by id;
sign(a / b - 变量)的语法含义是什么?
为什么换成这样就可以了呢?34/567-0.5=-0.44
12/18-0.5=0.16
34/50-0.5=0.18sign(n) 是根据非负数来判别的吗?如果 n>0 sign(n)=1;如果n<0 sign(n)=-1;如果 n=0 sign(n)=0
是这样的么?谢谢^_^