每天一道大厂SQL题【Day31】腾讯QQ(二)按类别统计QQ号相关信息(1)

img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上大数据知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

需要这份系统化资料的朋友,可以戳这里获取

	- [思路分析](#_26)
	- [附表](#_45)
+ [答案获取](#_122)
+ [加技术群讨论](#_129)
+ - [文末SQL小技巧](#SQL_137)
+ [后记](#_149)

每天一道大厂SQL题【Day31】腾讯QQ(二)按类别统计QQ号相关信息

大家好,我是Maynor。相信大家和我一样,都有一个大厂梦,作为一名资深大数据选手,深知SQL重要性,接下来我准备用100天时间,基于大数据岗面试中的经典SQL题,以每日1题的形式,带你过一遍热门SQL题并给出恰如其分的解答。

一路走来,随着问题加深,发现不会的也愈来愈多。但底气着实足了不少,相信不少朋友和我一样,日积月累才是最有效的学习方式!

每日语录

image-20231010095250496

学习!还是他娘地学习!

第31题 需求二: 按类别统计QQ号相关信息

需求列表

a) 写一段SQL,统计每天不同性别的qq号个数、总消息量、平均在线时长(注意2个表的qq号类型不同),且去 掉(不包括)性别为空的qq号。

b) 写一段SQL,找出每个省份里消息量排名第一的QQ号码。

思路分析

a)

table_use表的qq号是整数类型,而table_act表的qq号是字符串类型。这样的话,你需要在连接两个表的时候,把其中一个表的qq号转换成另一个表的qq号的类型,才能正确匹配。例如,你可以用cast函数把table_use表的qq号转换成字符串类型,然后和table_act表的qq号连接。😊

另外,你想要统计每天不同性别的qq号个数、总消息量、平均在线时长,那么你需要用group by语句来按照日期和性别分组,然后用count、sum和avg函数来计算相应的指标。😊

最后,你想要去掉性别为空的qq号,那么你需要用where语句来过滤掉这些数据。😊

b)

  • 首先,使用join语句把两个表按照qq号连接起来,得到每个qq号码的性别、地域和消息量。
  • 然后,使用rank函数和partition by子句对每个地域里的qq号码按照消息量进行降序排名,得到每个qq号码的排名。
  • 接着,使用where子句过滤掉排名不是第一的qq号码,只保留每个地域里消息量最高的qq号码。
  • 最后,使用select语句选择需要的字段,包括地域、qq号码、消息量和排名。
附表

table_usera中数据如下:

日期qq号年龄性别地域
201701011000020广东省
201701012000030北京市
201701013000025陕西省
201701015000018广东省

table_act表结构如表格3

列名类型长度允许空备注
ftimebigint日期
qqcharqq号
msgbigint10消息量
onlinetimedouble10在线时长(h)

table_act表数据包含数据如表格4

日期qq号消息量在线时长(h)
20170220100001001
20170220200001020.5
20170420300002002
20170420400003000.8
20170420500002013
create table if not exists table_use (
    lm_date int comment '日期',
    qq int comment 'QQ号',
    age string comment '年龄',
    sex string comment '性别',
    area string comment '地域'
);

insert into table_use
values (20170101, 20000, '30', '男', '北京市'),
(20170101, 30000, '25', '男', '陕西省'),
(20170101, 40000, '18', '女', '广东省'),
(20170101, 50000, '20', '女', '四川省');


![img](https://img-blog.csdnimg.cn/img_convert/ba81546092effacca8f1a784690fc231.png)
![img](https://img-blog.csdnimg.cn/img_convert/89ac8f3b768e72e0a5a0b1a53e48544e.png)
![img](https://img-blog.csdnimg.cn/img_convert/dccff83ccd901d139c8e91328140aff6.png)

**既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上大数据知识点,真正体系化!**

**由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新**

**[需要这份系统化资料的朋友,可以戳这里获取](https://bbs.csdn.net/topics/618545628)**

**

**由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新**

**[需要这份系统化资料的朋友,可以戳这里获取](https://bbs.csdn.net/topics/618545628)**

  • 4
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值