我有一个包含 PersonID 和 Code 列的数据库。每个 PersonID 有多个记录,每个记录都有一个代码。我想计算每个 PersonID 等于特定值的代码的出现次数(比如我想要代码等于“R”的次数)。我希望它像这样返回
((PersonID, Code_Count), (PersonID, Code_Count), (PersonID, Code_Count), ...)
有人可以帮我实现这一目标吗?
谢谢。
编辑:我认为这是正确的,有人可以确认吗? SELECT PersonID,COUNT(*) as count FROM people WHERE Code="R" GROUP BY PersonID;
编辑:它不包括零计数,但我在下面添加了一个答案来解决这个问题。
SELECT PersonID, CAST(SUM(CASE WHEN Code = "R" THEN 1 ELSE 0 END) AS SIGNED) AS count FROM People GROUP BY PersonID;
这完全按预期工作,感谢@LightnessRacesinOrbit 提供部分解决方案。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句