Php 如何用计数函数求和
这是我的桌子:Php 如何用计数函数求和,php,sql,codeigniter,Php,Sql,Codeigniter,这是我的桌子: id | marital_stat | ==================== 1 divorced 2 divorced 3 married 4 single SELECT COUNT(CASE WHEN marital = 'divorced' THEN 1 END) AS divorcestat, COUNT(CASE WHEN marital = 'married' THEN 1 END) AS marriedstat
id | marital_stat |
====================
1 divorced
2 divorced
3 married
4 single
SELECT
COUNT(CASE WHEN marital = 'divorced' THEN 1 END) AS divorcestat,
COUNT(CASE WHEN marital = 'married' THEN 1 END) AS marriedstat,
COUNT(CASE WHEN marital = 'single' THEN 1 END) AS singlestat
FROM status_tbl
我想分开每个婚姻状况的总和,我使用条件,因为在我的表中使用varchar
而不是integer
这是我在模型文件中的查询:
id | marital_stat |
====================
1 divorced
2 divorced
3 married
4 single
SELECT
COUNT(CASE WHEN marital = 'divorced' THEN 1 END) AS divorcestat,
COUNT(CASE WHEN marital = 'married' THEN 1 END) AS marriedstat,
COUNT(CASE WHEN marital = 'single' THEN 1 END) AS singlestat
FROM status_tbl
通过上面的查询生成我想要的值,结果是:
divorcestat | marriedstat | singlestat
--------------------------------------------
2 1 1
但是现在我需要将上面的所有值相加,并将从计数函数中生成一个总计,(离婚+结婚+单身)->总计。我该怎么做呢?我在stackoverflow中尝试了一些答案,但没有任何效果<代码>分组依据,联合
,只是不工作。您可以使用count(*)
您可以向查询中添加count(*)
SELECT
COUNT(CASE WHEN marital = 'divorced' THEN 1 END) AS divorcestat,
COUNT(CASE WHEN marital = 'married' THEN 1 END) AS marriedstat,
COUNT(CASE WHEN marital = 'single' THEN 1 END) AS singlestat,
COUNT(*) AS total_stat
FROM status_tbl;
我希望这对您有所帮助。您还可以使用“表表达式”来重用已计算的值
例如:
select
*,
divorcestat + marriedstat + singlestat as total
from (
SELECT
COUNT(CASE WHEN marital = 'divorced' THEN 1 END) AS divorcestat,
COUNT(CASE WHEN marital = 'married' THEN 1 END) AS marriedstat,
COUNT(CASE WHEN marital = 'single' THEN 1 END) AS singlestat
FROM status_tbl
) x
当用于计算值的表达式很复杂,并且不想在查询中重复它们时,这会很方便