在oracle中使用SUM和MAX时遇到一些困难。
我想做的是找到分数总和最高的患者。
我想同时选择总分和患者ID。
如果我运行此查询,我会得到最高分,但没有得到预期的任何患者详细信息。
SELECT MAX(SUM(PM.score)) AS Total
FROM Patient P, PatientMetabolic PM
WHERE P.patientID = PM.patientID
GROUP BY P.patientID
如果我这样添加患者ID
SELECT MAX(SUM(PM.score)) AS Total, P.patientId
FROM Patient P, PatientMetabolic PM
WHERE P.patientID = PM.patientID
GROUP BY P.patientID
我收到的不是单组分组功能错误。
任何帮助将不胜感激,谢谢您的时间。
这样做:
WITH sums AS
(
SELECT P.patientID, SUM(PM.score) AS Total
FROM Patient P, PatientMetabolic PM
WHERE P.patientID = PM.patientID
GROUP BY P.patientID
)
SELECT * FROM sums WHERE total=(SELECT MAX(total) FROM sums);
这将为您提供所有患者ID以及MAX得分总和。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句