SQL—NAs的总和
我正在处理奥运数据()。我尝试使用SQLite获取某些列的NAs总和。列的NAs之和显示为0(零)。代码在下面,请帮助。谢谢SQL—NAs的总和,sql,sqlite,count,pivot,Sql,Sqlite,Count,Pivot,我正在处理奥运数据()。我尝试使用SQLite获取某些列的NAs总和。列的NAs之和显示为0(零)。代码在下面,请帮助。谢谢 SELECT Sex, SUM(CASE WHEN ('Age' = 'NA') THEN (1.0) ELSE (0.0) END) AS NA_age, SUM(CASE WHEN ('Height' = 'NA') THEN (1.0) ELSE (0.0) END) AS NA_height, SUM(CASE WHEN ('Weight' = '
SELECT
Sex,
SUM(CASE WHEN ('Age' = 'NA') THEN (1.0) ELSE (0.0) END) AS NA_age,
SUM(CASE WHEN ('Height' = 'NA') THEN (1.0) ELSE (0.0) END) AS NA_height,
SUM(CASE WHEN ('Weight' = 'NA') THEN (1.0) ELSE (0.0) END) AS NA_weight,
COUNT(*)
FROM olymp
GROUP BY Sex
列名周围不能使用单引号。
单引号用于字符串文字。
更改为:
SELECT
Sex,
SUM(CASE WHEN (Age = 'NA') THEN 1 ELSE 0 END) AS NA_age,
SUM(CASE WHEN (Height = 'NA') THEN 1 ELSE 0 END) AS NA_height,
SUM(CASE WHEN (Weight = 'NA') THEN 1 ELSE 0 END) AS NA_weight,
COUNT(*)
FROM olymp
GROUP BY Sex
但是在SQLite中不需要CASE
表达式。使用
SUM()
中的布尔表达式:
谢谢你的支持,但是我仍然使用你建议的两个代码为这些列获得相同的0(零)输出。可能有什么问题?请发布您的数据样本。@IntrepidNutrepation您的意思可能是
年龄为空
而不是年龄='NA'
?ID姓名性别年龄身高体重团队国家奥委会运动会年度赛季城市9967 Pave~M 28 172 70 Czec~TCH 1992~1992冬季Albe~111428 Helg~F20771 61阿尔格~ARG 1968~1968年冬季格伦~127942保罗~M 29 NA 109杰姆~1936~1936年夏季贝尔~37121朱利~M 18 NA杰姆~1900~1900年夏季Paris@GMB,缺少的值不为空。我在R studio中加载excel文件并使用sqlite
SELECT
Sex,
SUM(Age = 'NA') AS NA_age,
SUM(Height = 'NA') AS NA_height,
SUM(Weight = 'NA') AS NA_weight,
COUNT(*)
FROM olymp
GROUP BY Sex