MySQL:获取MySql结果最后一行的总数

时间:2011-03-08 12:15:39

标签: php mysql sql

例如,我有一个这样的表:

product | quantity | something
-------------------------------
 abc    |   5      |  2
 xzy    |   5      |  2
 asd    |   10     |  2

当我需要所有记录时,我喜欢这样并得到3个结果:

select * from tableName 

但我希望得到第4行的总数量(50)和东西(6)。是否有可能在SQL查询中或我必须循环我的结果以获得查询执行后的总计?如果可能的话,我想在查询中这样做。

6 个答案:

答案 0 :(得分:14)

(SELECT product, 
        quantity, 
        something 
 FROM   tablename) 
UNION 
(SELECT "all"          AS product, 
        SUM(quantity)  AS quantity, 
        SUM(something) AS something 
 FROM   tablename) 

这是有效的查询。它会在结果的末尾添加第四行

答案 1 :(得分:13)

您可以使用汇总来生成总计,但您必须将其更改为聚合函数,如下所示:

SELECT product, sum(quantity), sum(something)
FROM tableName
GROUP BY product WITH ROLLUP

答案 2 :(得分:3)

这不是解决这个问题的最佳方法,但应该做到这一点

select product, quantity, something from tableName
union 
select 'sum', sum(quantity), sum(something) from tableName

答案 3 :(得分:2)

你可以

SELECT Product, Quantity, Something 
FROM TABLENAME

UNION

SELECT 'ALL', SUM(Quantity),SUM(Something) 
FROM TABLENAME

但是,这不会在表格中添加一行。无论如何,这可能不是一个好主意。

答案 4 :(得分:1)

$q="select sum(quantity), sum(something) from tableName";

答案 5 :(得分:0)

请尽量避免使用联合查询,在进行联接和案例查询的情况下,这可能会增加执行时间。因此,正如@Chris Strickland所说,请使用WITH ROLLUP。