分组结果为子组

时间:2012-01-05 23:46:25

标签: php mysql group-by sum

我一直在尝试使用接受的答案中的方法获取以下数据的子组:how to group result in subgroups in php,但无济于事。有人请帮忙。

我想要这个:

+---------------+-----------------+
| Type          |  Price          |
+---------------+-----------------+
| Music         |  19.99          |
| Music         |   3.99          |
| Music         |  21.55          |
| Toy           |  89.95          |
| Toy           |   3.99          |
+---------------+-----------------+

显示如下:

Music | 45.53
Toy   | 93.94

分组和小计。

3 个答案:

答案 0 :(得分:1)

执行查询时,您应该直接在MySQL中执行此操作(如果可能):

SELECT DISTINCT Type, SUM(Price) as Total FROM table_name GROUP BY Type

答案 1 :(得分:1)

您可以选择价格总和,然后按类型对小计进行分组。我在PHP脚本中使用了这个SQL语句;

SELECT SUM(Price) AS Total, Type FROM Table GROUP BY Type

然后我执行了SQL语句并在一个简单的foreach循环中回显结果。它看起来对我很好。

答案 2 :(得分:0)

试试这个......

// Get the sum
$group = array();
foreach($rows as $r){
  $group[$r->type] = $group[$r->Type] + $r->Price;
}

// Display
foreach($group as $type=>$price){
  echo "Type:".$type." Price: ".$price;
}