从下表中获取数据的最佳sql是什么
示例表
id name buyer amt
1 per disney 10
1 per marie 12
1 per clarence 11
2 pella Magnus 5
2 pella Olof 2
2 pella Asa 4
3 chris Lotta 6
3 chris Wayne 3
3 chris Brad 5
数据输出:
Customer Name : Per
disney 10
marie 12
clarence 11
Total 33
Customer Name : pella
Magnus 5
Olof 2
Asa 4
Total 11
Customer Name : Chris
Lotta 6
Wayne 3
Brad 5
Chris 14
所以最后它的名字在顶部,以及该卖家和每笔交易的每个买家,最后是总数。
我提出了这个SQL查询,但它相当粗糙。
select name, supplier, amt, (select sum(amt) from transact where name = t.name)as total from transact t
答案 0 :(得分:3)
使用Group By和Rollup获取总和。
select name, supplier, amt
from transact t
group by name, supplier with rollup;
http://dev.mysql.com/doc/refman/5.1/en/group-by-modifiers.html