Oracle中怎么样把字段相同的值加在一起
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Oracle中怎么样把字段相同的值加在一起相关的知识,希望对你有一定的参考价值。
比如说我想要查询一张表中物品的值,但是物品中会有很多相同的值,想把这几个相同的值的数量相加要怎么写这个sql语句。
是这样的,我的表中有物品的数量,我想把相同物品的数量累计。不相同的物品还是单独显示
将相同字段的值加在一起需要用sum函数。
如emp表中有如下数据:
现要按deptno为分组,将sal的值加在一起,可用如下语句:
查询结果:
参考技术A 问题不是太清楚!!--每个物品有个字段表示数量,数量求和
select 物品的值,sum(数量) from table_name group by 物品的值
--统计所有物品的值相同的行数。
select 物品的值,count(*) from table_name group by 物品的值本回答被提问者和网友采纳 参考技术B select a.id,(nvl(a.AMOUNT,0)-nvl(b.REV,0)) Result
from a,
(select b.id,sum(b.REV) REV
from b
group by b.id) b
where a.id=b.id(+); 参考技术C 按物品分组统计就ok了
select SUM()
from 。。。
group by 物品名称 参考技术D select name,
sum(物品价值),
count(1)
from tablename
group by name;
oracle 查询不连续的值?
有一字段是文件编号,docNumber, 正常是从1开始的,每次编新文件时,会找数据库中最大的,再加1,就是自动生成当前的编号。
但是现在有个问题,有的文件被删除了,比如30号文件被删除了,现在自动生成的逻辑只能出现最大值,比如40号,我想问,怎么才能查出从1到40中,第一个中断的数字?
返回值就是中断的那个不存在的数字,你把函数里面的表名和字段名替换成你的表
CREATE OR REPLACE FUNCTION GET_BROK RETURN NUMBER IS
RESULT NUMBER;
V_NUM NUMBER;
BEGIN
V_NUM := 0;
FOR CUR IN (SELECT DOCNUMBER FROM TABLE1 ORDER BY DOCNUMBER) LOOP
IF CUR.DOCNUMBER <> V_NUM + 1 THEN
RESULT := V_NUM + 1;
RETURN(RESULT);
END IF;
V_NUM := CUR.DOCNUMBER;
END LOOP;
RESULT := V_NUM + 1;
RETURN(RESULT);
END GET_BROK;追问
能不能麻烦写个SQL呀
追答函数完全可以,为什么非要用一句话实现这个功能?
创建这个函数后,用一句select语句调用这个函数就可以了。
select a.id from tableA a where a.id not in (select b.id from tableB b) 参考技术C 查询的!
以上是关于Oracle中怎么样把字段相同的值加在一起的主要内容,如果未能解决你的问题,请参考以下文章