求大神赐教啊!!!1急急急!!!!! 10
3个回答
展开全部
select city, sum(case when actual_sales > sales_target then 1 else 0 end)/count(id) from sales group by city;
之前忘加=了,应该是这样:
select city, sum(case when actual_sales >= sales_target then 1 else 0 end)/count(id) from sales group by city;
之前忘加=了,应该是这样:
select city, sum(case when actual_sales >= sales_target then 1 else 0 end)/count(id) from sales group by city;
展开全部
select city,
str(sum(case when actual_sales>=sales_target then 1 else 0 end)/convert(float,count(1)))+'%'
from sales
group by city
str(sum(case when actual_sales>=sales_target then 1 else 0 end)/convert(float,count(1)))+'%'
from sales
group by city
追问
能跟我解释下吗? 有点搞不懂了。。。QQ597930326
追答
首先用city分组即group by
然后用case when then else end选择句式,
判断当actual_sales>=sales_target时表示有达标店铺,记作1,否则为0
整体sum就是合计,然后除以总的店铺数count(1),1是常量这里代表行数
用convert将数量由整数转换为浮点型,因为整数相除还为整数,整数除以小数才是小数
额。。忘记乘以100了,用str函数将结果转换为字符串,最后拼接一个百分号
select city,
str(sum(case when actual_sales>=sales_target then 1 else 0 end)/convert(float,count(1))*100)+'%'
from sales
group by city
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
select city, 'rate' = sum(case when Actual_sales>=Sales_target then 1 else 0 end)*100/COUNT(Store_id) into myTarget from sales group by city;
已经过验证,结果表的名称是myTarget
如果一定要显示出百分号,自己改改数据的格式吧。
已经过验证,结果表的名称是myTarget
如果一定要显示出百分号,自己改改数据的格式吧。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询