数据库中查到一组数据,然后每三行相加求和得出新的一行,

如表名table数据ab122233344411566677查询后显示应该是ab3996154求助中,在线等啊... 如 表名 table
数据 a b
1 22
2 33
3 44
4 11
5 66
6 77
查询后显示应该是 a b
3 99
6 154
求助中,在线等啊
展开
 我来答
tj_angela
2013-04-22 · TA获得超过7530个赞
知道大有可为答主
回答量:6797
采纳率:75%
帮助的人:2613万
展开全部
select floor((a+2)/3)*3,sum(b)
from table
group by floor((a+2)/3)*3
order by a
;

就是除以3后取整数再乘以3
不同数据库取整数函数不一样,不能执行可以试试trunc
追问
如果a是日期呢?
追答
如果是a是日期,那就用自动序列
用row_number() over函数生成序列
panshubing2
2013-04-22
知道答主
回答量:9
采纳率:100%
帮助的人:1.3万
展开全部
declare
temp_a varchar2(10);
temp_b varchar2(10);
temp_count integer;
temp_value integer;
cursor cur_i is select a,b,rownum from t_table;
begin
temp_value:=0;
open cur_i;
loop
fetch cur_i into temp_a,temp_b,temp_count;
exit when cur_i%notfound;
temp_value:= temp_value+temp_b;
if temp_count mod 3 =0 then
insert into t_table_result values(temp_a,temp_value);
temp_value:= 0;
end if;
end loop;
end;
试试看,数据库为:oracle
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
灬Linhoo
2013-04-22 · TA获得超过104个赞
知道小有建树答主
回答量:226
采纳率:0%
帮助的人:144万
展开全部
select 3,sum(select * from table where a<4) from table;
union
select 6,sum(select * from table where a>3) from table;

看了 楼下的 对啊 该用游标的
追问
是sql,a为日期该怎么做啊
追答
SQL 也可以用 过程做啊 ..
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式