欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2022-06-16 15:05:34
今天去面试,有一道sql题纠结了很久,可惜最后没能写对,回家就建表插数据来调试sql,现在写出来,以让自己以后无聊时研究。 题目如下:客户每访问一次,就会向b表中插入一条数据, 表结构如下 求依...

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

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

表结构如下

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

求依次显示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对逻辑锻炼还是不错的。