看看是不是你要的结果 create table ATable ( name varchar(300) , x decimal(18,2), y decimal(18,2) )insert into ATable values('A',15,23); insert into ATable values('A',335,253); insert into ATable values('A',155,343); insert into ATable values('A',345,53); insert into ATable values('A',95,43); insert into ATable values('B',65,73); insert into ATable values('B',85,83);--查询名字为A,且记录在2-5之间,求出合计 select name,x,y,x*y from (select a.*,rownum rn from ATable a where rownum <=5) where rn>=2 and name='A' union all select '合计' ,null,null,sum(x*y) from (select a.*,rownum rn from ATable a where rownum <=5) where rn>=2 and name='A'
查询出来的结果NAME X Y X*Y A 335 253 84755 A 155 343 53165 A 345 53 18285 A 95 43 4085 合计 160290
hibernate可以用sql,自带分页的方法么。
呵呵,开始我也没理解清楚有一个表A,假如 其中有几条数据 的两个字段值(a,b)都相同,则可以合并为一条数据. 如: a b c d... 2 3 4 5... 和 a b c d... 2 3 6 7... 这两条数据的a和b的值对应相等,则可以使查询结果为一条数据,统计这种记录的数目(这里为2),并存在另表一个字段中。
insert into tableb(a,b,cnt) select a,b,count(*) from tablea group by a,b
create table ATable
(
name varchar(300) ,
x decimal(18,2),
y decimal(18,2)
)insert into ATable values('A',15,23);
insert into ATable values('A',335,253);
insert into ATable values('A',155,343);
insert into ATable values('A',345,53);
insert into ATable values('A',95,43);
insert into ATable values('B',65,73);
insert into ATable values('B',85,83);--查询名字为A,且记录在2-5之间,求出合计
select name,x,y,x*y from (select a.*,rownum rn from ATable a where rownum <=5) where rn>=2 and name='A'
union all
select '合计' ,null,null,sum(x*y)
from (select a.*,rownum rn from ATable a where rownum <=5) where rn>=2 and name='A'
A 335 253 84755
A 155 343 53165
A 345 53 18285
A 95 43 4085
合计 160290
如:
a b c d...
2 3 4 5...
和
a b c d...
2 3 6 7...
这两条数据的a和b的值对应相等,则可以使查询结果为一条数据,统计这种记录的数目(这里为2),并存在另表一个字段中。
select a,b,count(*) from tablea group by a,b
http://topic.csdn.net/u/20091130/21/fb718680-98ff-4afb-98d8-cff2f8293ed5.html?24281
select a,b,count(*) from tablea group by a,b having count(*)=2
http://topic.csdn.net/u/20101012/09/30a141cd-3ac7-4b9b-bc13-65884b470701.html?07725700212359987