gpt4 book ai didi

mysql - 如何在分组依据中添加空值?

转载 作者:行者123 更新时间:2023-11-29 18:35:18 25 4
gpt4 key购买 nike

如何在分组依据中添加空值?

我有一个按年龄组织的查询:

但是当值没有结果时,它们不在选择中,我想在所有这些 CASE 选项上添加 0。

我的选择供引用:

SELECT CASE 
WHEN TIMESTAMPDIFF(YEAR, STR_TO_DATE(DataNascimento, '%d/%m/%Y'),CURDATE()) < 4 THEN 'Menos de 4'
WHEN TIMESTAMPDIFF(YEAR, STR_TO_DATE(DataNascimento, '%d/%m/%Y'),CURDATE()) BETWEEN 5 AND 9 THEN '5 a 9 Anos'
WHEN TIMESTAMPDIFF(YEAR, STR_TO_DATE(DataNascimento, '%d/%m/%Y'),CURDATE()) BETWEEN 10 AND 17 THEN '10 a 17 Anos'
WHEN TIMESTAMPDIFF(YEAR, STR_TO_DATE(DataNascimento, '%d/%m/%Y'),CURDATE()) BETWEEN 18 AND 24 THEN '18 a 24 Anos'
WHEN TIMESTAMPDIFF(YEAR, STR_TO_DATE(DataNascimento, '%d/%m/%Y'),CURDATE()) BETWEEN 25 AND 29 THEN '25 a 29 Anos'
WHEN TIMESTAMPDIFF(YEAR, STR_TO_DATE(DataNascimento, '%d/%m/%Y'),CURDATE()) BETWEEN 30 AND 39 THEN '30 a 39 Anos'
WHEN TIMESTAMPDIFF(YEAR, STR_TO_DATE(DataNascimento, '%d/%m/%Y'),CURDATE()) BETWEEN 40 AND 49 THEN '40 a 49 Anos'
WHEN TIMESTAMPDIFF(YEAR, STR_TO_DATE(DataNascimento, '%d/%m/%Y'),CURDATE()) BETWEEN 50 AND 59 THEN '50 a 59 Anos'
WHEN TIMESTAMPDIFF(YEAR, STR_TO_DATE(DataNascimento, '%d/%m/%Y'),CURDATE()) BETWEEN 60 AND 69 THEN '60 a 69 Anos'
WHEN TIMESTAMPDIFF(YEAR, STR_TO_DATE(DataNascimento, '%d/%m/%Y'),CURDATE()) >= 70 THEN 'Maior que 70 Anos'
ELSE 'SEM INFORMAÇÕES' END ,
COUNT(id)
FROM pessoas GROUP BY DataNascimento

我希望当组中没有值时计数 ID 显示 0

最佳答案

DataNascimento 的小组将无法工作。您必须按 CASE 进行分组,并且还可以包含其他情况。

查看答案 Can you GROUP BY with a CASE WHEN THEN alias name?

要为未找到的值添加 count(0),可以使用 union:

添加到更正语句的末尾(用例):

union select 'menos de 4', 0 from pessoas where
DataNascimento not exists in
(select DataNascimento from pessoas where
TIMESTAMPDIFF(YEAR, STR_TO_DATE(DataNascimento, '%d/%m
/%Y'),CURDATE()) < 4)

union select '5 a 9 Anos', 0 from pessoas where
DataNascimento not exists in
(select DataNascimento from pessoas where
TIMESTAMPDIFF(YEAR, STR_TO_DATE(DataNascimento, '%d/%m
/%Y'),CURDATE()) BETWEEN 5 AND 9 )

union .....

关于mysql - 如何在分组依据中添加空值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45356813/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com