我想查询多个表,并从每个表中获得store_key
的平均计数,每个表使用一组相当精细的WHERE
条件。我可以单独查询它们,但我想在一个查询中执行此操作。
每个表格都有retailer_key
,store_key
(以及许多其他列)
我希望我的查询返回类似的内容:
表名| AVG商店密钥
使用类似于WHERE retailer_key = 41 AND
的where条件...使用每个表共享的列。
这有什么意义吗?这似乎很简单,但出于某种原因,我无法弄清楚如何构建查询。
答案 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