select sum( 字段2 ) as 字段2 from 表 group by 字段1 order by 字段1 asc 即可!
select 字段1 ,sum( 字段2 ) as 字段2 from 表 group by 字段1 order by 字段1 asc
select 字段1 ,sum( 字段2 ) as 字段2 from 表 group by 字段1union allselect 字段1 ,sum( 字段2 ) as 字段2 from 表 group by 字段1order by 字段1 asc
为什么求和的结果要显示两次?如果是一次的话,就用 select 字段1, sum(字段2) as 字段2 from 表名 group by 字段1 order by 字段1 就可以了 如果一定要两次的话,你只好用union all了。 不过你用在什么样的程序里?我还是建议你用存储过程比较好,可以封装多于1条的sql语句
select a.f1,b.s from tb a inner join (select f1,sum(f2) s from tb group by f1) b on a.f1=b.f1
语句不是拿来乱用的. b若出现100次,那就 UNION ALL 100次? 何况怎么知道是应该UNION 100次. 即使知道 union多少次, 排序结果也是有问题的.
from 表
group by 字段1
order by 字段1 asc
即可!
from 表
group by 字段1
order by 字段1 asc
,sum( 字段2 ) as 字段2
from 表
group by 字段1union allselect 字段1
,sum( 字段2 ) as 字段2
from 表
group by 字段1order by 字段1 asc
select 字段1, sum(字段2) as 字段2
from 表名
group by 字段1
order by 字段1
就可以了
如果一定要两次的话,你只好用union all了。
不过你用在什么样的程序里?我还是建议你用存储过程比较好,可以封装多于1条的sql语句
inner join (select f1,sum(f2) s from tb group by f1) b
on a.f1=b.f1
何况怎么知道是应该UNION 100次. 即使知道 union多少次, 排序结果也是有问题的.