繁体   English   中英

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

[英]How to calculate averages from two different tables on MySQL?

我在MySQL上有两个不同的表,分别称为“患者”和“供体”。 我想计算患者年龄和供体年龄的平均值。

我在MySQL上运行此查询:

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

它返回我这个错误:

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

我在哪里犯错?

只需在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;

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM