【发布时间】:2018-02-23 19:27:55
【问题描述】:
我执行了这个查询
$sql = "
SELECT cls
, sctn
, COUNT(case when gender='M' then 1 end) boys
, COUNT(case when gender='F' then 1 end) girls
FROM student_table
WHERE active = 1
group
by cls
, sctn";
$stmt->query($sql)->fetchAll(PDO::FETCH_GROUP|PDO::FETCH_ASSOC);
然后我得到了这个结果
Array
(
[1st] => Array(
[0] => Array (
[sctn] => A
[boys] => 8
[girls] => 7
)
[1] => Array (
[sctn] => B
[boys] => 5
[girls] => 4
)
)
[2nd] => Array (
[0] => Array (
[sctn] => A
[boys] => 3
[girls] => 7
)
[1] => Array (
[sctn] => B
[boys] => 8
[girls] => 5
)
)
[3rd] => Array (
[0] => Array (
[sctn] => A
[boys] => 9
[girls] => 11
)
[1] => Array (
[sctn] => B
[boys] => 5
[girls] => 17
)
)
)
但我期待的结果是
Array
(
[1st] => Array(
[A] => Array (
[boys] => 8
[girls] => 7
)
[B] => Array (
[boys] => 5
[girls] => 4
)
)
[2nd] => Array (
[A] => Array (
[boys] => 3
[girls] => 7
)
[B] => Array (
[boys] => 8
[girls] => 5
)
)
[3rd] => Array (
[A] => Array (
[boys] => 9
[girls] => 11
)
[B] => Array (
[boys] => 5
[girls] => 17
)
)
)
在这里,我想计算班级明智、部门明智和性别明智
我还需要 sctn 值作为嵌套数组的键
有没有办法根据我的SELECT查询得到这个结果?
【问题讨论】: