SQL—NAs的总和

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' = '

我正在处理奥运数据()。我尝试使用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' = '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