gpt4 book ai didi

sql - MySQL 中 COUNT 的默认值

转载 作者:行者123 更新时间:2023-11-29 01:34:15 33 4
gpt4 key购买 nike

我有一张看起来像这样的 table :

+-------+-----+
|country|prop1|
+-------+-----+
|RO | 1 |
|RO | 2 |
|UK | 1 |
|IT | 2 |
+-------+-----+

我想计算 prop1 不为空的行数,我使用以下选择:

SELECT `country`, COUNT(*) as number FROM table GROUP BY `country`;

这将返回:

+-------+------+
|country|number|
+-------+------+
|RO | 2 |
|UK | 1 |
|IT | 1 |
+-------+------+

但是我需要以下内容:

+-------+------+
|country|number|
+-------+------+
|RO | 2 |
|UK | 1 |
|IT | 1 |
|FR | 0 |
+-------+------+

你认为像这样的东西可以直接用 SQL 写吗?我在想一些事情,比如指定“国家”的可能值列表和默认值 (0),如果在表中找不到的话。

最佳答案

在您的示例中,FR 的来源并不明显。

MySQL 中没有国家列表,因此国家代码应该从某处获取。

如果您在 mytable 中包含所有国家(prop 可能设置为 NULL):

SELECT  country, COUNT(prop) as number
FROM mytable
GROUP BY
country

如果您在单独的表中有国家(并且 mytable 中可能缺少国家):

SELECT  c.id, COUNT(m.prop) as number
FROM countries c
LEFT JOIN
mytable m
ON m.country = c.id
GROUP BY
c.id

关于sql - MySQL 中 COUNT 的默认值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1487537/

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