【问题标题】:Group results in subgroups分组结果分组
【发布时间】:2012-01-05 23:46:25
【问题描述】:

我一直在尝试使用此处接受的答案中的方法获取以下数据的子组总数: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

在组和小计中。

【问题讨论】:

    标签: php mysql group-by sum


    【解决方案1】:

    你应该在执行查询时直接在 MySQL 中进行(如果可能的话):

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

    【讨论】:

    • 感谢 Niklas 的回复,但是查询很复杂,要连接三个表。让它返回上述结果一直很困难。直接从 mysql 分组没有用。
    • 我明白了。您能否展示您从帖子中列出的 SQL 查询中获得的数组结构?您可以为此使用 print_r($array) 或 var_dump($array)。如果给出数组结构,回答你的问题会容易得多:)
    【解决方案2】:

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

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

    然后我执行 SQL 语句并在一个简单的 foreach 循环中回显结果。它似乎对我很有效。

    【讨论】:

      【解决方案3】:

      试试这个...

      // 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;
      }
      

      【讨论】:

      • 天才你是迪普!非常感谢大家,希望这些对其他人有所帮助。
      猜你喜欢
      • 1970-01-01
      • 2014-02-04
      • 1970-01-01
      • 2021-08-06
      • 2017-01-17
      • 2013-05-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多