作者jonce007 (汪汪)
看板Database
标题[SQL ] SQL新手问语法。
时间Thu Oct 31 20:20:46 2013
table tb_a ( no, amt )
假设有十笔资料,no有三种。
select no, count(*), sum(amt) from tb_a group by no
得到
row 1: a 2 123
row 2: b 3 223
row 3: c 5 323
--------------------------------------------------------
如果我想加上第4行
row 4:合计 10 669
目前是用
select no, count(*) as tno , sum(amt) as tamt from tb_a group by no
union
select '合计' as no, count(*) as tno , sum(amt) as tamt from tb_a
但是这样,server应该会跑两次运算吧。
可以group完再group同时出现 row 1-4,而server端只运算一次吗?
我试过subselect
select '合计' as no, sum(tno), sum(tamt) from
(select no, count(*) as tno , sum(amt) as tamt from tb_a group by no ) as t1
但这也只是我要的row 4, row 1-3不见了。
想不出来啊,请提示一下好吗? 感恩。
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 1.164.2.207
1F:→ bohei:感觉无论如何都一定要两次 10/31 23:33
2F:→ bohei:第一次先group第二次才能去sum 10/31 23:34
3F:推 wangks:写stored procedure, 用cursor把纪录丢到TempTable并累加 11/01 15:16