Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 从每个表中选择平均值_Sql_Oracle_Select_Plsql - Fatal编程技术网

Sql 从每个表中选择平均值

Sql 从每个表中选择平均值,sql,oracle,select,plsql,Sql,Oracle,Select,Plsql,我想查询多个表,并使用一组相当复杂的WHERE条件从每个表中获得store_键的平均计数。我可以分别查询它们,但我想在一个查询中完成这项工作 每个表都有retailer_key、store_key以及许多其他列 我希望我的查询返回如下内容: 表名|存储密钥的平均值 使用类似于where-key=41的where条件,并且。。。使用每个表共享的列 这有什么意义吗?这看起来很简单,但由于某些原因,我无法确定如何构建查询。您可以使用一系列union all运算符: SELECT table_nam

我想查询多个表,并使用一组相当复杂的WHERE条件从每个表中获得store_键的平均计数。我可以分别查询它们,但我想在一个查询中完成这项工作

每个表都有retailer_key、store_key以及许多其他列

我希望我的查询返回如下内容:

表名|存储密钥的平均值

使用类似于where-key=41的where条件,并且。。。使用每个表共享的列


这有什么意义吗?这看起来很简单,但由于某些原因,我无法确定如何构建查询。

您可以使用一系列union all运算符:

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

哪种风格的SQL?ie mysql或oracle etcSounds好像没有规范化到me.PLSQL;到目前为止,我唯一的工作方法是编写单独的查询并用分号分隔,然后输入excel表,我意识到这很荒谬。您必须从每个表中选择retailer_键,以便在派生表的where条件下使用它。此外,最好将where条件和avg放在派生表中,以便db可以使用indexes@FuzzyTree关于零售商的好观点_密钥-已编辑。但是,如果不重复where子句,就无法在内部查询中执行avg,这正是OP试图避免的。