工作总结——视图

来源:互联网 发布:淄博网站搜索优化 编辑:程序博客网 时间:2024/05/01 16:04

最近在做营销活动的评估功能,这个功能se也没有做过多的设计,就是知道要哪些指标,而这些指标的数据没有过多的分析设计,也没有根据我们现有能力考虑。


因为汲及到时间维度,所以我建 个时间维度表,三个字段,年:2014,月:201410,日20142022;然后是和mm_sale_campaign表做了个视图

create or replace view mm_sale_campaign_time as

select  t.year as year,t.month as month,t.day as day,a.oid as campaignid from t_dim_time t,mm_sale_campaign a 

year           month           day                  campaignid

2014        201410         20141022      20141022abc


然后是我的客户接触表

create or replace view mm_sale_campaign_touchNum as

select x.camid,x.createMonth,x.createTime,count(distnct x.msisdn) as amount from

(select mst.campaignId as camid,to_char(mst.createTime,"yyyyMM") as createMonth,mst.createTime as createTime,mst.msisdn as msisdn  from mm_sale_touch mst) x

group by x.camid,x.createMonth,x.createTime


然后dashboard使用这两个视图关联查询,输出图形

--按月展示,

select ct.month,ct.campaignid,Decode(cn.amount,'',0.cn.amount) from mm_sale_campaign_time ct left join mm_sale_campaign_touchNum cn on ct.campaignid=cn.camid and ct.month=cn.createMonth where ct.campaignid='20141022abc' and ct.year="2014"

这样就把2014年1-12月的数据都展示出来了,如果当月没有产生客户接触,则客户接触数为0

ct.month,         ct.camid               amount

201401             20141022abc     0

...

201410           20141022abc     12


结论:

要使用复杂sql得到相应的指标分析数据,可以多写几个视图。

优点:就像java抽方法一样,便于修改,阅读;

据点   如果基表数据大时,要考虑多字段分组的性能


现实:

功能已经实现,后续测试测出性能,再作修改,可能会作日表,月表之类的

0 0