我正在使用以下代码
样本性别惯用手 1 女性右撇子 2 男性左撇子 3 女右撇子 4 男性右撇子 5 男性左撇子 6 男性右撇子 7 女右撇子 8 女左撇子 9 男性右撇子 10女右撇子
剩下- 右手—— 交总 男性 2 3 5 女性 1 4 5 总计 3 7 10
我有如上表,我需要作为第二张表。我需要使用交叉表,但我不知道该怎么做。有人能帮助我吗。我在codeigniter中这样做。
我正在使用以下代码
样本性别惯用手 1 女性右撇子 2 男性左撇子 3 女右撇子 4 男性右撇子 5 男性左撇子 6 男性右撇子 7 女右撇子 8 女左撇子 9 男性右撇子 10女右撇子
剩下- 右手—— 交总 男性 2 3 5 女性 1 4 5 总计 3 7 10
我有如上表,我需要作为第二张表。我需要使用交叉表,但我不知道该怎么做。有人能帮助我吗。我在codeigniter中这样做。
您可以通过查询来完成
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();