为了账号安全,请及时绑定邮箱和手机立即绑定

这样的子查询应该怎么避免

这样的子查询应该怎么避免

慕后森 2018-12-06 13:53:21
select Spreader,counts, (select COUNT(*) from view_Login where [loginNum]>0 and Spreader=v.Spreader) as one ,(select COUNT(*) from view_Login where [loginNum]>1 and Spreader=v.Spreader) as two ,(select COUNT(*) from view_Login where [loginNum]>2 and Spreader=v.Spreader) as three from view_Login as v group by Spreader,counts view_Login 是推广登录的日志表 Spreader 是推广员counts 是推广人数uid 是用户IDloginNum 是登录数现在要统计推广用户登录的情况,最后写出这样一个粗糙的SQL语句,应该还有更好的写法,特求
查看完整描述

2 回答

?
大话西游666

TA贡献1817条经验 获得超14个赞

使用case  when 转换

select 

Spreader,counts
,SUM(case when
[loginNum]>0 then 1 else 0 end) one
,SUM(case when  [loginNum]>1   then 1 else 0 end )  two
,SUM(case when  [loginNum]>2   then 1 else 0 end ) three
from view_Login as v
            group  by Spreader,counts
查看完整回答
反对 回复 2019-01-07
?
米脂

TA贡献1836条经验 获得超3个赞

顶!!!!!!!!!!!

查看完整回答
反对 回复 2019-01-07
  • 2 回答
  • 0 关注
  • 484 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信