【发布时间】:2021-03-09 19:29:31
【问题描述】:
我不知道这个问题的措辞是否正确,因为我不确定我在寻找什么。对不起……
我有一个 PHP 脚本,它创建一个饼图并从 SQL 查询中获取输入,如下所示:
Column | COUNT(Column)
x | y
例如,我要求提供性别饼图并使用:
gender | COUNT(gender)
female | 17
male | 13
或国籍饼图:
nationality | COUNT(nationality)
us | 3
uk | 8
es | 4
我可以通过这样的查询轻松获得这些结果
SELECT myColumn, COUNT(myColumn) FROM myTable GROUP BY myColumn ORDER BY COUNT(myColumn)
现在我想要一个包含活着/死去的人的饼图。在我的表中,我有出生日期和死亡日期。因此,我必须做些别的事情才能得到我想要的:
alive | COUNT(alive)
alive | 16
dead | 4
我可以让人们活着
SELECT alive.*
FROM persons AS alive
WHERE alive.deceased = NULL OR alive.deceased = '0000-00-00' AND alive.born != '0000-00-00'
和死去的人:
SELECT dead.*
FROM persons AS dead
WHERE NOT dead.deceased = NULL OR dead.deceased != '0000-00-00'
所以问题是,我如何结合它得到
alive | COUNT(alive)
alive | 16
dead | 4
?
我猜它涉及到 COUNT() 和 GROUP BY,但我不知道怎么做。也许还有 UNION?
谢谢!
【问题讨论】:
-
deceased = NULL是一个毫无意义的条件。它永远不会评估为真。 -
好的,谢谢,会更新的。