Php MySQL:获取MySQL结果最后一行的总计
例如,我有这样一个表:Php MySQL:获取MySQL结果最后一行的总计,php,mysql,sql,Php,Mysql,Sql,例如,我有这样一个表: product | quantity | something ------------------------------- abc | 5 | 2 xzy | 5 | 2 asd | 10 | 2 SELECT product, sum(quantity), sum(something) FROM tableName GROUP BY product WITH ROLLUP 当我需要所有记录时,我
product | quantity | something
-------------------------------
abc | 5 | 2
xzy | 5 | 2
asd | 10 | 2
SELECT product, sum(quantity), sum(something)
FROM tableName
GROUP BY product WITH ROLLUP
当我需要所有记录时,我会这样做,并得到3个结果:
select * from tableName
但我想得到第四行的数量(50)和一些东西(6)。在sql查询中是否可能,或者我必须在查询执行后循环我的结果以获得总计?如果可能的话,我想在查询中这样做
(SELECT product,
quantity,
something
FROM tablename)
UNION
(SELECT "all" AS product,
SUM(quantity) AS quantity,
SUM(something) AS something
FROM tablename)
这是一个有效的查询。它将根据需要在结果末尾添加第四行
$q="select sum(quantity), sum(something) from tableName";
$q=“从tableName中选择总和(数量)、总和(某物)”;
这不是解决这个问题的最佳方法,但应该做到这一点
select product, quantity, something from tableName
union
select 'sum', sum(quantity), sum(something) from tableName
你可以
SELECT Product, Quantity, Something
FROM TABLENAME
UNION
SELECT 'ALL', SUM(Quantity),SUM(Something)
FROM TABLENAME
但是,这不会在表中添加行。无论如何,这可能不是一个好主意。您可以使用rollup生成总计,但必须将其更改为聚合函数,如下所示:
product | quantity | something
-------------------------------
abc | 5 | 2
xzy | 5 | 2
asd | 10 | 2
SELECT product, sum(quantity), sum(something)
FROM tableName
GROUP BY product WITH ROLLUP
尽量避免联合查询在连接和案例查询的情况下,它可能会增加执行时间。正如@Chris Strickland所说的,使用ROLLUP。我认为您需要使用
SUM()
语句再次运行您的请求(请参阅)。这应该是公认的答案,因为它是最有效、最短的方法,而且非常简单