您可以通过查询来完成
SELECT gender,
SUM(CASE WHEN Handedness = 'Left-handed' THEN 1 ELSE 0 END) left_handed,
SUM(CASE WHEN Handedness = 'Right-handed' THEN 1 ELSE 0 END) right_handed,
COUNT(*) total
FROM Table1
GROUP BY gender WITH ROLLUP
输出:
| 性别 | 左手 | 右手 | 总计 |
|--------|-------------|--------------|--------|
| 女 | 1 | 4 | 5 |
| 男 | 2 | 3 | 5 |
| (空) | 3 | 7 | 10 | -- 这是 WITH ROLLUP 生成的总数
这是SQLFiddle演示
我不是 CI 专家,但您的代码可能看起来像
$sql = "SELECT gender,
SUM(CASE WHEN Handedness = 'Left-handed' THEN 1 ELSE 0 END) left_handed,
SUM(CASE WHEN Handedness = 'Right-handed' THEN 1 ELSE 0 END) right_handed,
COUNT(*) total
FROM Table1
GROUP BY gender WITH ROLLUP";
$data = $this->db->query($sql)->result_array();