关于这个结果怎么得到?请大家帮忙,前来探讨。
有这么一张表:
手机产品销售客户反馈记录的:
产品类型 产品跟单状态id 客户反馈满意度id 客户回访方式id
苹果3代 1 5 2
三星5830 3 5 1
三星9100 3 3 3
苹果4代 2 2 3
诺基亚L800 1 2 2
苹果4代 3 4 1
三星5830 3 3 1
苹果3代 5 1 2
type status result huifu
根据这张表 我想得到
每一个产品类型 产品跟单状态为3 的行数,客户满意度的行数(4,5都表示满意),客户的回复次数,满意度的百分比值。
比如:三星5830 跟单状态为3的行数有2行,客户满意度有 1行,客户回复次数由2行,满意度百分比值为(1/8)(对应手机型号满意行数除以整个客户反馈满意度)。
产品类型 在结果表中只能是唯一的。也就是说三星5830这个手机型号的数据 在结果中只能出现一条数据。
怎么去得到每一个手机型号下的各项值的行数统计,包括百分比计算,要用到循环吗?望大家指教,我会努力给分的。
[解决办法]
select 产品类型, sum(产品跟单状态id), sum(case when 客户反馈满意度id ='4' or 客户反馈满意度id ='5' then 客户反馈满意度id else 0 end ), sum(客户回访方式id)from 表group by 产品类型
[解决办法]
declare @t table (t nvarchar(16),id1 tinyint,id2 tinyint,id3 tinyint)insert into @tselect '苹果3代', 1, 5, 2 union allselect '三星5830',3 ,5 ,1 union allselect '三星9100', 3, 3, 3 union allselect '苹果4代', 2 ,2 ,3 union allselect '诺基亚L800', 1 ,2, 2 union allselect '苹果4代', 3 ,4, 1 union allselect '三星5830', 3 ,3 ,1 union allselect '苹果3代', 5 ,1, 2select t as [产品类型], sum(case when id1 = 3 then 1 else 0 end) as [跟单状态], sum(case when id2 >= 4 then 1 else 0 end) as [客户满意度] , count(1) as [客户的回复次数], sum(case when id2 >= 4 then 1 else 0 end)*100.0/(select count(1) from @t) as [满意度百分比值]from @tgroup by t/*(8 行受影响)产品类型 跟单状态 客户满意度 客户的回复次数 满意度百分比值---------------- ----------- ----------- ----------- ---------------------------------------诺基亚L800 0 0 1 0.000000000000苹果3代 0 1 2 12.500000000000苹果4代 1 1 2 12.500000000000三星5830 2 1 2 12.500000000000三星9100 1 0 1 0.000000000000(5 行受影响)*/
[解决办法]