在SQL中组合两个不同表中的两个字段

时间:2015-04-20 10:04:10

标签: sql database

我有两张桌子:

试验:

id
name
last_name
price

TEST1

id
name
price

我想结合两个表中的两个字段(价格)并计算它们的平均值。但我得到了每个表格的平均值。

SELECT AVG(price) FROM test as p
UNION
SELECT AVG(price) FROM test1 as p

3 个答案:

答案 0 :(得分:4)

这个怎么样:

SELECT AVG(price) AS P FROM
(
    SELECT price FROM test
    UNION ALL
    SELECT price FROM test1
) AS TMP

我认为您需要UNION ALL才能真正包含所有价格,否则将忽略重复价格,这可能会影响平均价格。

答案 1 :(得分:0)

您可以使用子查询或子句:

来完成
WITH all_data as(
    SELECT id,name,price FROM test as t
    UNION ALL
    SELECT id,name,price FROM test as t2
)
SELECT AVG(price) FROM all_data

答案 2 :(得分:0)

如果你想根据名字做平均值,那么:

  1. 你必须使用union all,然后按名称分组
  2. find avg
  3. 如果你只是想要avg然后先做Union all然后采取avg