2017-05-28 138 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