如果两个字段相同,如何使用JSON COUNT-sum求和值

How can I sum values if two fields are the same using JSON COUNT - SUM

本文关键字:何使用 JSON COUNT-sum 求和 字段 两个 如果      更新时间:2023-09-26

这是我的JSON文件。

{"result":[
{"beer":"23","store":"1","table":"1"},
{"beer":"12","store":"1","table":"1"},
{"beer":"5","store":"1","table":"2"}]}

如果商店和表格字段相同,我想合计啤酒。

结果应该是2条记录:

beer 35, store 1 table 1
beer 5, store 1 table 2

这是我使用的MYSQL查询:

$sql = "SELECT * FROM data  ORDER BY beer DESC";
        $res = mysql_query($sql);
        $result = array();
        while( $row = mysql_fetch_array($res) )
            array_push($result, array('beer' => $row[1],
                                      'store'  => $row[2],
                                      'table' => $row[3]));
        echo json_encode(array("result" => $result));

希望您需要group by

$sql = "
    SELECT sum(beer) as beer, store, table 
    FROM data 
    GROUP BY store, table  
    ORDER BY beer DESC
";

直接从sql:执行此操作

$query="将总和(啤酒)选择为啤酒、商店、表格FROM数据GROUP BY存储,表";

从json:中求和

$json_result = json_decode($json_var) ;
$result = array() ;
foreach($json_result->result as $key=>$value){
    if(!isset($result[$value->store])){
        $result[$value->store] = array() ;
        $result[$value->store][$value->table] = $value->beer ;
    }
    else if(!isset($result[$value->store][$value->table])){
        $result[$value->store][$value->table] = $value->beer ;
    }
    else{
        $result[$value->store][$value->table] += $value->beer ;
    }
}
$result will contain the json sum