我遇到了处理多维数组的问题。下面是存储从mysql到数组的所有数据查询的代码。我想知道如何计算多维数组中多少个不同的模块名称并将状态分为两列吗? SQL查询从一个复杂的表中获取数据,该表存储了所有ModuleName和不同的状态。我需要对它们进行分类并显示在表格中。因此,基本上我需要检查阵列中有多少个模块,以及该模块有多少个延迟或延迟。

while($array = mysql_fetch_array($result)){
        $list[] = array(
                        "ModuleName"=>$array['ModuleName'],
                        "status"    =>$array['Status']
            );
    }




这是预期结果的样本

最佳答案

更新为按ModuleName分组

SELECT ModuleName
      ,COUNT(*) AS module_count
      ,SUM(CASE WHEN Status != 'Present' THEN 1 ELSE 0 END) as late_count
      ,SUM(CASE WHEN Status  = 'Present' THEN 1 ELSE 0 END) as present_count
  FROM ( your original query )
 GROUP BY ModuleName


只需将“您的原始查询”替换为用于检索数组中数据的SQL。

原版的

SELECT COUNT(*) AS module_count
      ,SUM(CASE WHEN Status != 'present' THEN 1 ELSE 0 END) as late_count
      ,SUM(CASE WHEN Status  = 'present' THEN 1 ELSE 0 END) as present_count
  FROM ( your original query )

07-25 21:56