如何结合SELECT语句以允许我计算SQL Server中的百分比,成功和失败?
|
想象一张桌子:
CUST_PROMO(customer_id,PROMOTION),用作客户收到的每个促销之间的映射。
select promotion, count(customer_id) as promo_size
from CUST_PROMO
group by promotion
这样可以使我们获得每次促销的客户总数。
现在,我们有了CUSTOMER(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语句来设置每个值-但这很杂乱;并且每个表/选择语句都需要一个新的UPDATE语句。我还可以为每个结果集创建一个临时表,然后将它们连接在一起。但是真的谁想这样做?
我想不出任何可行的方法来连接这些数据。因为我正在处理聚合。
因此,充其量,我需要一个像UNION这样的函数,它将结合结果集,但实际上将像键上的列一样合并并添加这些列,而不是添加会增加行的并集。该描述听起来像是JOIN;但我看不到有效果。
谢谢您的帮助!
没有找到相关结果
已邀请:
4 个回复
递劝臼类洪
泻伴墓荒
埃庐
使用解码的更干净的解决方案。仍不确定数学是否有效
仿普
字段可以具有
值,这很可能不是这种情况。但是,如果客户可能出现在具有相同促销代码的表的两行中,则应将其更改为
: