求大神赐教啊!!!1急急急!!!!! 10

 我来答
流浪云风
2012-09-06 · TA获得超过4315个赞
知道大有可为答主
回答量:1119
采纳率:69%
帮助的人:919万
展开全部
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;
szm341
2012-09-06 · TA获得超过6725个赞
知道大有可为答主
回答量:5005
采纳率:100%
帮助的人:5087万
展开全部
select 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
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lhfcqu
2012-09-07 · TA获得超过890个赞
知道小有建树答主
回答量:588
采纳率:100%
帮助的人:319万
展开全部
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
如果一定要显示出百分号,自己改改数据的格式吧。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式