MySQL如何从表中生成SELECT SUM并从其他SEARCH中进行乘法运算?

时间:2016-12-20 18:55:23

标签: mysql

我有这个查询

SELECT ps_ur AS UR, COUNT(ps_ur) AS Value 
FROM patient_services 
GROUP BY UR 
UNION ALL
SELECT eng_ur AS UR, COUNT(eng_ur) AS Value  
FROM engagements 
WHERE LENGTH( eng_ur )>0  
GROUP BY UR

结果:

UR     Value
002035 3
002400 2
005441 4
...

现在我需要从患者表男性/女性计算并乘以值

喜欢这样但是正确的

SELECT 
SUM( CASE WHEN patient_gender = 'Male' THEN 1 ELSE 0 END ) Male, 
SUM( CASE WHEN patient_gender = 'Female' THEN 1 ELSE 0 END ) Female 
FROM patients WHERE patient_ur

怎么做?

1 个答案:

答案 0 :(得分:1)

在这种情况下,您希望将第一个包装为内部查询。像下面的东西。现在,您可以访问Value字段xxx.Value并繁殖或执行所需的任何处理。不确定您想要乘法的位置,因此无法在建议的查询中反映出来。可能还有你的作业。

SELECT 
SUM( CASE WHEN patient_gender = 'Male' THEN 1 ELSE 0 END ) Male, 
SUM( CASE WHEN patient_gender = 'Female' THEN 1 ELSE 0 END ) Female 
FROM patients JOIN (
SELECT ps_ur AS UR, COUNT(ps_ur) AS `Value` 
FROM patient_services 
GROUP BY UR 
UNION ALL
SELECT eng_ur AS UR, COUNT(eng_ur) AS `Value`  
FROM engagements 
WHERE LENGTH( eng_ur )>0  
GROUP BY UR ) xxx ON  patients.patient_ur = xxx.UR