选择数据以及列的总和

时间:2010-10-23 13:12:23

标签: php mysql

从下表中获取数据的最佳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

1 个答案:

答案 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