mysql中数据分析求百分比,求助sql语句怎么写

yumengxmu 2017-04-27 04:29:36
求百分比,比如说有个登录表log,其中有3个字段我们涉及,用户号id,登陆结果result,登陆渠道channel
id result channel
1 SUCC PC
2 SUCC MOBILE
3 FAIL PC
2 FAIL MOBILE
1 SUCC IPAD

我现在想sql语句求出不同渠道登陆的失败率,即 每个渠道登陆失败次数/每个渠道登陆的总次数

一个sql语句写不出来,分别查出不同渠道登陆失败次数和总次数,然后手动除
SELECT channel COUNT(*) FROM log WHERE result = "FAIL" GROUP BY channel; //每个渠道登陆失败次数
SELECT channel COUNT(*) FROM log GROUP BY channel; //每个渠道登陆总次数


现在有没有办法能够一个sql语句求出来,不用手动除??
sql高手请帮忙!
...全文
2297 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
yumengxmu 2017-04-28
  • 打赏
  • 举报
回复
果然是高手,一出手就搞定了。哈哈哈,谢谢啦!
落落叶叶无声 2017-04-27
  • 打赏
  • 举报
回复
应该要用除法吧。可以这么写

SELECT channel,
SUM(CASE WHEN RESULT = 'FAIL' THEN 1 ELSE 0 END) FAIL,
COUNT(*),
SUM(CASE WHEN RESULT = 'FAIL' THEN 1 ELSE 0 END)/COUNT(*)
FROM LOG
GROUP BY channel

3,499

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 高级技术相关讨论专区
社区管理员
  • 高级技术社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧