每天一道大厂SQL题【Day02】电商场景TopK统计
创始人
2024-05-22 08:35:57
0

每天一道大厂SQL题【Day02】

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

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

每日鸡汤:

你必须非常努力,才能看起来毫不费力。

在这里插入图片描述

第2题:电商场景TopK统计

需求

有50W个京东店铺,每个顾客访客访问任何一个店铺的任何一个商品时都会产生一条访问日志, 访问日志存储的表名为Visit,访客的用户id为user_id,被访问的店铺名称为shop,数据如下:
在这里插入图片描述

请统计:
(1)每个店铺的UV(访客数)
(2)每个店铺访问次数top3的访客信息。输出店铺名称、访客id、访问次数
实现

数据准备

CREATE TABLE test_sql.test2 (
user_id string, shop string )
ROW format delimited FIELDS TERMINATED BY '\t';
INSERT INTO TABLE test_sql.test2 VALUES ( 'u1', 'a' ),
( 'u2', 'b' ),
( 'u1', 'b' ),
( 'u1', 'a' ),
( 'u3', 'c' ),
( 'u4', 'b' ),
( 'u1', 'a' ),
( 'u2', 'c' ),
( 'u5', 'b' ),
( 'u4', 'b' ),
( 'u6', 'c' ),
( 'u2', 'c' ),
( 'u1', 'b' ),
( 'u2', 'a' ),
( 'u2', 'a' ),
( 'u3', 'a' ),
( 'u5', 'a' ),
( 'u5', 'a' ),
( 'u5', 'a' );

思路分析

1 每个店铺的UV(访客数)
使用 SQL 或者其他数据库查询语言进行统计。
先通过 group by 按店铺名称进行分组,然后使用 count(distinct user_id) 计算每个店铺的访客数。
2 每个店铺访问次数top3的访客信息
使用 SQL 或者其他数据库查询语言进行统计。
先通过 group by 按店铺名称和用户id进行分组,然后使用 count(*) 计算每个用户在每个店铺的访问次数。
使用 order by 对访问次数进行排序,然后使用 limit 3 限制输出的数量。
输出店铺名称、访客id、访问次数。

答案获取

建议你先动脑思考,动手写一写再对照看下答案,如果实在不懂可以点击下方卡片,回复:大厂sql 即可。
参考答案适用HQL,SparkSQL,FlinkSQL,即大数据组件,其他SQL需自行修改。

加技术群讨论

点击下方卡片关注 联系我进群

或者直接私信我进群

文末SQL小技巧

提高SQL功底的思路。
1、造数据。因为有数据支撑,会方便我们根据数据结果去不断调整SQL的写法。
造数据语法既可以create table再insert into,也可以用下面的create temporary view xx as values语句,更简单。
其中create temporary view xx as values语句,SparkSQL语法支持,hive不支持。
2、先将结果表画出来,包括结果字段名有哪些,数据量也画几条。这是分析他要什么。
从源表到结果表,一路可能要走多个步骤,其实就是可能需要多个子查询,过程多就用with as来重构提高可读性。
3、要由简单过度到复杂,不要一下子就写一个很复杂的。
先写简单的select * from table…,每个中间步骤都执行打印结果,看是否符合预期, 根据中间结果,进一步调整修饰SQL语句,再执行,直到接近结果表。
4、数据量要小,工具要快,如果用hive,就设置set hive.exec.mode.local.auto=true;如果是SparkSQL,就设置合适的shuffle并行度,set spark.sql.shuffle.partitions=4;

后记

📢博客主页:https://manor.blog.csdn.net

📢欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正!
📢本文由 Maynor 原创,首发于 CSDN博客🙉
📢不能老盯着手机屏幕,要不时地抬起头,看看老板的位置⭐
📢专栏持续更新,欢迎订阅:https://blog.csdn.net/xianyu120/category_12182595.html

相关内容

热门资讯

小狗四年级的作文300字【优... 小狗四年级的作文300字 篇一我的朋友小狗我有一个非常好的朋友,他就是一只可爱的小狗。小狗是我家附近...
小事情大能量六年级作文(最新... 小事情大能量六年级作文 篇一标题:帮助他人的小事情作为一个六年级的学生,我深深地认识到一个小小的善举...
我的疑问四年级作文【优秀3篇... 我的疑问四年级作文 篇一我的疑问我是一个四年级的小学生,最近我有很多疑问,想要寻找答案。下面我就和大...
我是一根粉笔六年级作文650... 我是一根粉笔六年级作文650字 篇一我是一根粉笔我是一根粉笔,是学生们书写知识的工具。每天,当上课铃...
快乐的一天四年级优秀作文(优... 快乐的一天四年级优秀作文 篇一快乐的一天今天是一个特别快乐的一天,因为我参加了学校举办的运动会。运动...
森林里的声音作文500六年级... 森林里的声音作文600六年级 篇一:探秘神奇的森林森林里的声音,是如此的多样而又神奇。每当我进入森林...
我和谁过一天四年级作文300... 我和谁过一天四年级作文300字 篇一我和妈妈过一天今天是星期天,我和妈妈一起度过了愉快的一天。早上,...
春天的小学四年级作文300字... 春天的小学四年级作文300字 篇一春天的美景春天是一年四季中最美丽的季节,大自然仿佛换上了新装,到处...
四年级作文师恩(精选6篇) 四年级作文师恩 篇一师恩如山老师是我们成长道路上最重要的人之一,她们默默耕耘,用自己的爱和智慧引导我...
四年级妈妈作文【优选6篇】 四年级妈妈作文 篇一:我的宝贝女儿亲爱的女儿,你已经四年级了,成长得如此快速。回想起你的成长历程,我...
校园的春天四年级作文300字... 校园的春天四年级作文300字 篇一校园的春天春天是一个美丽的季节,也是我最喜欢的季节之一。在校园里,...
童年令我高兴的事作文400字... 童年令我高兴的事作文400字作文四年级 篇一标题:我和小伙伴们的足球比赛我最喜欢的童年回忆之一是和小...
四年级作文评语(通用3篇) 四年级作文评语 篇一爱国之情这篇作文写得非常好!作者以“我的祖国”为题,用朴实的语言表达了对祖国的深...
四年级雨中畅想作文(优质6篇... 四年级雨中畅想作文 篇一雨中的畅想天空阴沉沉的,暗示着即将来临的雨季。我喜欢雨天,因为雨天给我带来了...
游白鹿温泉四年级暑假作文【优... 游白鹿温泉四年级暑假作文 篇一夏天到了,我迫不及待地和家人一起来到了白鹿温泉度假村。这是一个位于山脚...
给老师的一封信小学四年级作文... 给老师的一封信小学四年级作文 篇一亲爱的老师:您好!我是您班上的学生小明,我想通过这封信表达我的感激...
一起来造兵马俑四年级作文【最... 一起来造兵马俑四年级作文 篇一兵马俑,是我国古代的一项伟大发明,也是世界上独一无二的文化遗产。它们以...
中国梦小学四年级作文(通用5... 中国梦小学四年级作文 篇一:我的中国梦中国梦小学四年级作文 篇一我的中国梦中国梦,是每个中国人共同的...
畅想美好新生活四年级作文47... 畅想美好新生活四年级作文47篇 篇一标题:我梦想的未来城市我梦想的未来城市是一个充满科技和绿色环保的...
生活教会了我什么作文四年级3... 篇一:生活教会了我勇敢面对困难生活是一所最好的学校,它教会了我许多宝贵的经验和知识。在我四年级的时候...