在SQL中将一个查询的结果计算为另一个查询的百分比

问题描述 投票:0回答:1

我正在尝试根据视力检查的人数来计算视力受损的人数。我已经成功地计算了视力受损的人的总数(TotalDiagnosed)和评估的总数(TotalEvaluated):

! impala-shell -q 'SELECT COUNT(*) FROM (SELECT DISTINCT eyesight_evaluation.patient_id FROM eyesight_evaluation WHERE severity_of_sight_loss IN ("Slight","Mild","Moderate","Moderately Severe","Severe","Profound")) AS TotalDiagnosed;'

! impala-shell -q 'SELECT COUNT(DISTINCT eyesight_evaluation.patient_id) AS TotalEvaluated FROM eyesight_evaluation;'

我不确定如何确定百分比。我尝试过

! impala-shell -q 'SELECT COUNT(DISTINCT eyesight_evaluation.patient_id) AS TotalEvaluated FROM eyesight_evaluation;'

但它返回了

错误:AnalysisException:第1行中的语法错误:...已选择,TotalEvaluated ROUND(已诊断总数* 100.0 /总...^遇到:(预期值:CROSS,FROM,FULL,GROUP,HAVING,INNER,JOIN,LEFT,LIMIT,OFFSET,ON,ORDER,RIGHT,> STRAIGHT_JOIN,TABLESAMPLE,UNION,USING,WHERE,COMMA

原因:异常:语法错误

有人可以帮我确定百分比吗?我正在使用Impala和Jupyter笔记本。

sql jupyter-notebook percentage impala
1个回答
0
投票
SELECT (COUNT(DISTINCT CASE WHEN severity_of_sight_loss IN ('Slight', 'Mild', 'Moderate', 'Moderately Severe', 'Severe', 'Profound') THEN ee.patient_id END) * 1.0 / COUNT(DISTINCT eyesight_evaluation.patient_id) ) FROM eyesight_evaluation ee;
© www.soinside.com 2019 - 2024. All rights reserved.