sqlite SQL对表中某个ID的列值求平均值,按表中不同ID的同一列中的值分组

sshcrbum  于 2022-12-13  发布在  SQLite
关注(0)|答案(1)|浏览(145)

我已经搜索了SO,但是找不到与我匹配的案例。这是因为我的表中的同一列需要用于平均和分组依据,但是问题是在实现每个函数时id是不同的。让我解释一下:这是我的“答案”表:

现在ID 1的问题是“你的年龄是多少”,ID 2的问题是“你的性别是什么”。我找到了前7个性别,它们是:“男性”、“女性”、“男性”、“女性”、“-1”、“非二元”、“非二元”
AnswerText包含每个问题的答案。我想获取列表中每个性别类别的平均年龄。我已经完成了以下操作:

SELECT AVG(AnswerText), Gender
    FROM 
    (
      SELECT AnswerText as Gender
      FROM Answer
      WHERE Answer.QuestionID = 2 
      AND Gender IN ('Male', 'Female', 'male', 'female', '-1', 'Nonbinary', 'non- 
     binary')
    )
    WHERE Answer.QuestionID = 1
    GROUP BY Gender

这将引发错误'no such column:AnswerText'我正在使用SQLlite,我如何实现这一点?如果需要,我可以提供表格。任何指导都是感谢。谢谢

flvlnr44

flvlnr441#

SELECT AVG(AnswerText), Gender
    FROM 
    (
      SELECT AnswerText as Gender  //Try to remove as Gender, the alias is not necesary
      FROM Answer
      WHERE Answer.QuestionID = 2 
      AND Gender IN ('Male', 'Female', 'male', 'female', '-1', 'Nonbinary', 'non- 
     binary')  // remove the AND statement. I think is redundant
    )
    WHERE Answer.QuestionID = 1
    GROUP BY Gender // This should group by all different genders or you can group then by later.

这只是从一个概念的Angular 来看。我没有软件可帮助更多。

相关问题