2017-05-28 89 views
0

我在MySQL上有两个不同的表格,它们被命名为“患者”和“捐助者”。我想计算患者年龄和捐献者年龄的平均值。如何计算MySQL上两个不同表的平均值?

我在MySQL上运行此查询:

SELECT AVG(patient_age) AS patient_age_avg FROM patient JOIN (SELECT 
AVG(donor_age) AS donor_age_avg FROM donor); 

并返回我这个错误:

Error Code: 1248. Every derived table must have its own alias

我在哪里犯错?

回答

0

只需要使用两个子查询中SELECT

SELECT (SELECT AVG(patient_age) FROM patient) as patient_age_avg, 
     (SELECT AVG(donor_age) FROM donor) as donor_age_avg; 

或者,如果你真的很喜欢,把他们的FROM子句中,并使用CROSS JOIN

SELECT p.patient_age_avg, d.donor_age_avg 
FROM (SELECT AVG(patient_age) as patient_age_avg FROM patient 
    ) p CROSS JOIN 
    (SELECT AVG(donor_age) as donor_age_avg FROM donor 
    ) d; 

我稍微倾向于第一种方法,因为我不必发明表格别名 - 但这实际上是一个次要的,次要的,次要的考虑。

+0

非常感谢!我刚应用了第一个查询,它的工作原理!谢谢。 – Katzenliebe