考虑一个简单的查询:
SELECT id, date, hours FROM employees where id=10
和以下结果集:
id | date | hours
---------------------
1 4-19-2012 4
1 4-19-2012 2.5
1 4-19-2012 1
1 4-20-2012 2
1 4-20-2012 3我显示了结果集的典型HTML表输出,但我希望在该天结果下面的一行上显示每日总和。
+--------------------------------------+
| David | 4-19-2012 | 4 |
| | 4-19-2012 | 2.5 |
| | 4-19-2012 | 1 |
|--------------------------------------|
| TOTAL ............ 7.5 |
|--------------------------------------|
| David | 4-20-2012 | 2 |
| | 4-20-2012 | 1 |
|--------------------------------------|
| TOTAL ............ 3 |
|--------------------------------------|
| GRAND TOTAL ..........10.5 |
+--------------------------------------+处理这个问题的最好方法是什么?有很多选择。正在子查询...将PHP代码放到我的视图中...当然还有更好的方法。
发布于 2012-04-27 01:42:17
升级为答案
在MySQL中,您可以使用WITH ROLLUP修饰符在使用GROUP BY分组的表中添加额外的汇总行:
GROUP BY子句允许使用WITH ROLLUP修饰符,该修饰符可以将额外的行添加到摘要输出中。这些行表示更高级别(或超聚合)的汇总操作。因此,ROLLUP使您能够使用单个查询回答多个分析级别的问题。例如,它可用于提供对OLAP (联机分析处理)操作的支持。
使用您的查询,您可以执行以下操作:
SELECT id, date, SUM(hours) AS totalhours
FROM employees
WHERE id = 10
GROUP BY id, date, hours WITH ROLLUPhttps://stackoverflow.com/questions/10338507
复制相似问题