1

簡単なクエリを考えてみましょう:

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コードを私のビューに入れる...確かにもっと良い方法があります。

4

1 に答える 1

1

回答にアップグレード

MySQL では、修飾子GROUP BYを使用してグループ化されたテーブルにサマリー行を追加できます。WITH ROLLUP

このGROUP BY句は、WITH ROLLUP余分な行を要約出力に追加する修飾子を許可します。これらの行は、高レベル (または超集計) の集計操作を表します。ROLLUPしたがって、1 つのクエリで複数の分析レベルの質問に答えることができます。たとえば、OLAP (オンライン分析処理) 操作のサポートを提供するために使用できます。

クエリを使用すると、次のことができます。

SELECT id, date, SUM(hours) AS totalhours
FROM employees
WHERE id = 10
GROUP BY id, date, hours WITH ROLLUP
于 2012-04-26T17:42:16.657 に答える