从每个表中选择平均值

时间:2015-01-13 16:33:55

标签: sql oracle select plsql

我想查询多个表,并从每个表中获得store_key的平均计数,每个表使用一组相当精细的WHERE条件。我可以单独查询它们,但我想在一个查询中执行此操作。

每个表格都有retailer_keystore_key(以及许多其他列)

我希望我的查询返回类似的内容:

表名| AVG商店密钥

使用类似于WHERE retailer_key = 41 AND的where条件...使用每个表共享的列。

这有什么意义吗?这似乎很简单,但出于某种原因,我无法弄清楚如何构建查询。

1 个答案:

答案 0 :(得分:1)

您可以使用一系列联合所有运算符:

SELECT   table_name, AVG(store_key)
FROM     (SELECT 'table1' AS table_name, store_key, retailer_key
          FROM   table1
          UNION ALL
          SELECT 'table2' AS table_name, store_key, retailer_key
          FROM   table2
          UNION ALL
          SELECT 'table3' AS table_name, store_key, retailer_key
          FROM   table3
          -- More queries like this if needed...
         ) t
WHERE    retailer_key = 41 -- AND additional conditions
GROUP BY table_name