想象一个表:如何组合SELECT语句以允许我计算SQL Server中的百分比,成功和失败?
CUST_PROMO(CUSTOMER_ID,促销),其被用作每一个客户收到促销之间的映射。
select promotion, count(customer_id) as promo_size
from CUST_PROMO
group by promotion
这会让我们的客户总数在每个推广。现在
,我们已经得到了客户(CUSTOMER_ID,PROMO_RESPONDED,PROMO_PURCHASED),其中列出了在客户和推广得到了客户响应,并得到了他们购买。
select PROMO_RESPONDED, count(customer_id) as promo_responded
from CUSTOMER
group by PROMO_RESPONDED
select PROMO_PURCHASED,count(customer_id) as promo_responded
from CUSTOMER
group by PROMO_PURCHASED
这都是不言自明的;现在我已经掌握了每个促销成功的人数。
但是;我想最终是[以CSV格式]
PROMOTION,PROMO_SIZE,PROMO_RESPONDED,PROMO_PURCHASED,PROMO_RESPSUCCESSRATE,blah
1,100,12,5,12%,...
2,200,23,14,11.5%,...
我不知道如何做到这一点。我可以联合上面的三个查询;但那实际上并不是我想要的。我想创建一个内存表,插入每个促销价值,然后做一个更新声明与一个联合反对它来设置每个值 - 但这很杂乱;并要求每个表/选择语句都有一个新的UPDATE语句。我也可以为每个结果集创建一个临时表,然后将它们结合在一起;但真的;谁想要这样做?
我想不出加入这个数据让任何意义的任何方式;因为我正在处理聚合。
所以,在最好的,我需要的是,像UNION,将结合的结果集的功能,反而会像相结合的列上的一个键,并添加这些列,而不是工会的它增加了行。描述使它听起来像一个JOIN;但我看不到那个工作。
感谢您的帮助!
这就是我最终这样做的结果;尽管所有解决方案都有优点。 – 2011-06-14 01:02:00