当前位置: 移动技术网 > IT编程>数据库>MSSQL > 客户每访问一次浏览器,就会向数据库B表中插入一条数据,求依次显示IP,用户登录次数,用户点击次数

客户每访问一次浏览器,就会向数据库B表中插入一条数据,求依次显示IP,用户登录次数,用户点击次数

2018年09月22日  | 移动技术网IT编程  | 我要评论

滨江道一姐,雷风,属相算命婚姻

今天去面试,有一道sql题纠结了很久,可惜最后没能写对,回家就建表插数据来调试sql,现在写出来,以让自己以后无聊时研究。

题目如下:客户每访问一次,就会向b表中插入一条数据,

表结构如下

\

求依次显示ip,用户登录次数,用户点击次数.

当时看完一脸蒙逼,回家调试后才开好,现给出两种答案:

答案一:

select access_ip,sum(num1),sum(num2) from

(

select access_ip ,count(*) num1,0 num2 from

(select access_ip,count(*) num1 from b group by access_ip,access_sessionid) group by access_ip

union all

select access_ip ,0 num1,count(*) num2 from b group by access_ip

)group by access_ip

答案二:

select access_ip,sum(num1),sum(num2) from

(

select access_ip ,count(*) num1,0 num2 from

(select distinct access_ip,access_sessionid from b) group by access_ip

union all

select access_ip ,0 num1,count(*) num2 from b group by access_ip

)group by access_ip

后是挺有趣的一道题目,逻辑稍复杂些,但字段少,所以难度中等吧,会了它,以后再写sql就会感觉容易很多了。

挺感谢之前自己做过erp的仓储模块,那sql语句写的,过个年回去我就完全不知道之前自己是怎么写出它们的,不过那里写的复杂sql对逻辑锻炼还是不错的。

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网