为了账号安全,请及时绑定邮箱和手机立即绑定

SQL问题请教

SQL问题请教

紫衣仙女 2019-04-13 08:46:39
我现在遇到一个问题,请教下大家应该怎么解决。我通过查询一个表,得出一个视图。但现在这样的表有很多个,我的想法是怎么样自动的查询这些表,得到同一个视图。表的名字是有规律的,比如T1_1,T1_2,T1_3,T1_4,T1_5,T1_6,T1_7,且所有表的结构和列名是一样的。创建视图时运行以下的sql语句:SELECTDISTINCT局向,COUNT(局向)AS局向数量,sum(总费用)AS总费用FROMT1_1GROUPBY局向现在需要说明的是:每个表都很大,上百万级的级别,我想过把所有表加到一个表中再运行上述语句,但效率不太高上述的sql会生成一个视图,我的目的是所有这些表的结果都在同一个视图中这些表中可能会有重复项
查看完整描述

2 回答

?
慕雪6442864

TA贡献1812条经验 获得超5个赞

表的个数是固定的吧,可以参考下面的语句
selectDISTINCT局向,COUNT(局向)AS局向数量,sum(总费用)AS总费用
from(
SELECTDISTINCT局向,COUNT(局向)AS局向数量,sum(总费用)AS总费用FROMT1_1GROUPBY局向
union
SELECTDISTINCT局向,COUNT(局向)AS局向数量,sum(总费用)AS总费用FROMT1_2GROUPBY局向
union
SELECTDISTINCT局向,COUNT(局向)AS局向数量,sum(总费用)AS总费用FROMT1_3GROUPBY局向
)
                            
查看完整回答
反对 回复 2019-04-13
?
胡子哥哥

TA贡献1825条经验 获得超6个赞

你既然都考虑到了脚本,就应该从脚本下手,写一个存储过程来实现。
在PL/SQL里面是可以使用DynamicSQL来实现你这个需求。
通过循环来遍历表名,依次来拼接创建视图的sql(可以参照楼上的union方式),DynamicSQL执行
不知道DB2有没有此类机制,只是一个建议
                            
查看完整回答
反对 回复 2019-04-13
  • 2 回答
  • 0 关注
  • 390 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信