如何计算MySQL上两个不同表的平均值?

时间:2017-05-28 17:42:42

标签: mysql

我在MySQL上有两个不同的表,命名为"患者"和#34;捐助者"。我想计算患者的平均值'年龄和捐赠者'年龄。

我在MySQL上运行此查询:

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

它返回给我这个错误:

  

错误代码:1248。每个派生表必须有自己的别名

我在哪里犯错误?

1 个答案:

答案 0 :(得分: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;

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