SQL问题请教
我现在遇到一个问题,请教下大家应该怎么解决。
我通过查询一个表,得出一个视图。但现在这样的表有很多个,我的想法是怎么样自动的查询这些表,得到同一个视图。
表的名字是有规律的,比如
T1_1, T1_2, T1_3, T1_4, T1_5, T1_6, T1_7
,且所有表的结构和列名是一样的。创建视图时运行以下的sql语句:
SELECT DISTINCT 局向,COUNT(局向) AS 局向数量,sum(总费用) AS 总费用 FROM T1_1 GROUP BY 局向
现在需要说明的是:
- 每个表都很大,上百万级的级别,我想过把所有表加到一个表中再运行上述语句,但效率不太高
- 上述的sql会生成一个视图,我的目的是所有这些表的结果都在同一个视图中
- 这些表中可能会有重复项
xiaoai
10 years, 3 months ago
Answers
表的个数是固定的吧,可以参考下面的语句
select DISTINCT 局向,COUNT(局向) AS 局向数量,sum(总费用) AS 总费用
from (
SELECT DISTINCT 局向,COUNT(局向) AS 局向数量,sum(总费用) AS 总费用 FROM T1_1 GROUP BY 局向
union
SELECT DISTINCT 局向,COUNT(局向) AS 局向数量,sum(总费用) AS 总费用 FROM T1_2 GROUP BY 局向
union
SELECT DISTINCT 局向,COUNT(局向) AS 局向数量,sum(总费用) AS 总费用 FROM T1_3 GROUP BY 局向
)
smooth
answered 10 years, 3 months ago