对postgresql查询中同一表中的两列值求和 选择c.period, c、 idsr\u事件\u id\u id, c、 idsr_疾病_id_id, 当idsr\u事件\u id\u id=1或idsr\u事件\u id\u id=3,然后求和(c.data\u value::integer),否则0作为案例结束, 当idsr\u事件\u id\u id=2或idsr\u事件\u id\u id=4,然后求和(c.data\u value::integer),否则0以死亡结束 来自veoc_idsr_周报_国家报告c 在b.id=c.idsr\u disease\u id\u id上左键连接veoc\u idsr\u diseases b 左连接veoc_idsr_报告的_事件j ON j.id=c.idsr_事件_id_id 如果c.idsr\u事件\u id>=1和c.idsr\u事件\u id\u id
请尝试以下查询,其中替换了函数位置之和:对postgresql查询中同一表中的两列值求和 选择c.period, c、 idsr\u事件\u id\u id, c、 idsr_疾病_id_id, 当idsr\u事件\u id\u id=1或idsr\u事件\u id\u id=3,然后求和(c.data\u value::integer),否则0作为案例结束, 当idsr\u事件\u id\u id=2或idsr\u事件\u id\u id=4,然后求和(c.data\u value::integer),否则0以死亡结束 来自veoc_idsr_周报_国家报告c 在b.id=c.idsr\u disease\u id\u id上左键连接veoc\u idsr\u diseases b 左连接veoc_idsr_报告的_事件j ON j.id=c.idsr_事件_id_id 如果c.idsr\u事件\u id>=1和c.idsr\u事件\u id\u id,postgresql,Postgresql,请尝试以下查询,其中替换了函数位置之和: SELECT c.period, c.idsr_incident_id_id, c.idsr_disease_id_id, CASE WHEN idsr_incident_id_id = 1 OR idsr_incident_id_id = 3 THEN SUM(c.data_value::integer) ELSE 0 END AS cases, CASE WHEN idsr_incident_id_id = 2 OR
SELECT c.period,
c.idsr_incident_id_id,
c.idsr_disease_id_id,
CASE WHEN idsr_incident_id_id = 1 OR idsr_incident_id_id = 3 THEN SUM(c.data_value::integer) ELSE 0 END AS cases,
CASE WHEN idsr_incident_id_id = 2 OR idsr_incident_id_id = 4 THEN SUM(c.data_value::integer) ELSE 0 END AS deaths
FROM veoc_idsr_weekly_national_report c
LEFT JOIN veoc_idsr_diseases b ON b.id = c.idsr_disease_id_id
LEFT JOIN veoc_idsr_reported_incidents j ON j.id = c.idsr_incident_id_id
WHERE c.idsr_incident_id_id >= 1 AND c.idsr_incident_id_id <= 4 AND idsr_disease_id_id = 10 AND period ='2019W30'
GROUP BY c.period, c.idsr_incident_id_id, c.idsr_disease_id_id, c.data_value;`enter code here`
选择c.period,
c、 idsr_疾病_id_id,
求和(当idsr\U事件id\U id=1或idsr\U事件id\U id=3时的情况,然后(c.data\U value::integer)否则为0结束)作为情况,
总和(当idsr\U事件id\U id=2或idsr\U事件id\U id=4时,则为(c.data\u value::integer),否则为0结束)作为死亡
来自veoc_idsr_周报_国家报告c
在b.id=c.idsr\u disease\u id\u id上左键连接veoc\u idsr\u diseases b
左连接veoc_idsr_报告的_事件j ON j.id=c.idsr_事件_id_id
其中c.idsr\u事件\u id\u id>=1和c.idsr\u事件\u id\u id
SELECT c.period,
c.idsr_disease_id_id,
SUM(CASE WHEN idsr_incident_id_id = 1 OR idsr_incident_id_id = 3 THEN (c.data_value::integer) ELSE 0 END) AS cases,
SUM(CASE WHEN idsr_incident_id_id = 2 OR idsr_incident_id_id = 4 THEN (c.data_value::integer) ELSE 0 END) AS deaths
FROM veoc_idsr_weekly_national_report c
LEFT JOIN veoc_idsr_diseases b ON b.id = c.idsr_disease_id_id
LEFT JOIN veoc_idsr_reported_incidents j ON j.id = c.idsr_incident_id_id
WHERE c.idsr_incident_id_id >= 1 AND c.idsr_incident_id_id <= 4 AND idsr_disease_id_id = 10 AND period ='2019W30'
GROUP BY c.period, c.idsr_disease_id_id;