我有一个带有"名称"的SQL表。作为一列,日期作为另一列,位置作为第三列。 location列支持空值。
我正在尝试编写一个查询,以确定name列中每个不同值的位置列中出现空值的次数。
有人可以帮忙吗?
答案 0 :(得分:3)
一种方法使用条件聚合:
select name, sum(case when location is null then 1 else 0 end)
from t
group by name;
另一种涉及稍微减少输入的方法是:
select name, count(*) - count(location)
from t
group by name;
答案 1 :(得分:0)
将count与过滤器一起使用,因为您只需要Null occurrence
select name, count(*) occurances
from mytable
where location is null
group by name
答案 2 :(得分:0)
根据您的问题,您希望获得所有不同名称的明确列表。行,然后你想要计算每个名称有多少个NULL。
以下将实现此目的:
SELECT name, count(*) as null_counts
FROM table
WHERE location IS NULL
GROUP BY name
WHERE子句仅检索记录中其位置为NULL的记录。
GROUP BY将根据NAME转动数据。
SELECT将为您提供名称,以及每个名称的记录数量的COUNT(*)。