SQL_SQL_常见面试问题

这篇具有很好参考价值的文章主要介绍了SQL_SQL_常见面试问题。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

问题类型 :SQL优化

问题描述 :用户浏览日志(date, user_id, video_id), 统计 2020.03.29 观看不同视频个数的前5名 user_id。

思路 :主要注意预计算,避免直接去重

解决方案 :

Hive_HQL_Hive优化_复杂SQL_观看不同视频个数的前5名_sql观看视频数最多的前五名用户_高达一号的博客-CSDN博客

问题描述 : 如何对多个count distinct 优化 

SELECT dt,
       COUNT(DISTINCT uuid) AS uv,
       COUNT(DISTINCT CASE WHEN is_click THEN uuid END) AS click_uv,
       ...
GROUP BY dt 

思路 : 针对于最细的颗粒度,先进行去重,再去计算最终的指标

解决方法 :

SELECT dt, COUNT(uuid) AS uv, COUNT(click_uuid) AS click_uv
FROM (
    SELECT dt, uuid, MAX(click_uuid) AS click_uuid
    FROM (
        SELECT dt, uuid,
            CASE WHEN is_click THEN uuid END AS click_uuid
        FROM your_table
    ) t1 
    GROUP BY dt, uuid
) t2 
GROUP BY dt;

问题描述 : 有50W个 店铺,每个顾客访客访问任何一个店铺的任何一个商品时都会产生一条访问日志, 访问日志存储的表名为Visit,访客的用户id为uid,被访问的店铺名称为shop,

数据如下:

                uid shop

                u1  a
                u2  b
                u1  b
                u1  a
                u3  c
                u4  b
                u1  a
                u2  c
                u5  b
请统计:
(1)每个店铺的UV(访客数)
(2)每个店铺访问次数top3的访客信息。输出店铺名称、访客id、访问次数
解题方案 : SQL_求店铺的topN && 开窗函数数据倾斜_高达一号的博客-CSDN博客

问题类型 :窗口函数使用

问题  求连续n月的下单用户

有如下表 ,求连续3个月的下单用户

order_no |  uid  | dep_no | amount | datetime

1    |   2002  |  20  |   2000.0 |  2023-04-25 12:30:20

解题方案 : Hive_HQL_复杂SQL_连续发单天数_hive支持复杂sql_高达一号的博客-CSDN博客

问题  求年度分月份,累计下单金额

有如下表 ,求业务部分月的年累计订单金额

order_no |  uid  | dep_no | amount | datetime

1    |   2002  |  20  |   2000.0 |  2023-04-25 12:30:20

问题 求路径访问深度

今天面试遇到了一道题,通过HQL 求访问深度以及当前页与下一页面的地址

前提假设:

1.用户只访问同一page一次

2.用户单一标签页跳转

有如下图1 转换为 图2 格式,即访问路径问题

SQL_SQL_常见面试问题,SQL,大数据,etl

 SQL_SQL_常见面试问题,SQL,大数据,etl

 问题答案 : HIVE_SQL_复杂SQL_求访问深度以及前一跳和下一跳的地址_高达一号的博客-CSDN博客

问题类型 :SQL巧解答

问题 已知登陆表中有 uid、login_time,求每个用户的最大连续登陆天数

uid、login_time

A  | 2020-08-01 10:00:00

(该问题为窗口函数问题中 : 连续n月下单用户的延申题目,可以两道问题一起考察)

问题答案 : SQL 求最大连续登陆天数_连续登录天数sql_机灵小布衣的博客-CSDN博客

问题  一份登陆日志,查到今天每个人倒数第二次登陆的时间、地点、ip等信息?

问题解法 :避免开窗函数导致的数据倾斜,先求最大,再求次大

问题答案 :SQL_分组求次大问题_一份登陆日志,查到今天每个人倒数第二次登陆的时间、地点、ip等信息?_高达一号的博客-CSDN博客

问题类型 : 复杂SQL

问题  求每个登录日期的次日留存率 

问题答案 :

SQL_牛客网_SQL264_求每个登陆日期的次日留存率_高达一号的博客-CSDN博客

问题解法 :日期函数 + 子查询文章来源地址https://www.toymoban.com/news/detail-604733.html

到了这里,关于SQL_SQL_常见面试问题的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 计算机保研面试常见问题(408数据结构简答题)

    1. 什么是时间复杂度?O(n)的O代表了什么? 答:时间复杂度是指执行算法所需要的计算工作量,可以用于描述一个程序的规模。O(n)中的O表示的是最坏情况下的时间复杂度。 2. 时间复杂度的量级排序是什么? 答:O(logn) O(n) O(nlogn) O(n^2) O(2^n) O(n!) 3. 顺

    2024年02月13日
    浏览(61)
  • 常见问题03:SpringBoot项目启动初始化数据(执行sql文件)

    使用外部资源中定义的 SQL 脚本填充、初始化或清理数据库。 调用addScript(org.springframework.core.io.Resource)以添加单个 SQL 脚本位置。 调用addScripts(org.springframework.core.io.Resource…)以添加多个 SQL 脚本位置。 请参阅此类中的 setter 方法以获取更多配置选项。 调用populate(java.sql.Connect

    2024年02月13日
    浏览(58)
  • 揭示十年数据库经验,告诉你如何轻松应对常见问题(SQL 小虚竹)

    回城传送–》《数据库问题解决方案》 ❤️作者主页:小虚竹 ❤️作者简介:大家好,我是小虚竹。2022年度博客之星评选TOP 10🏆,Java领域优质创作者🏆,CSDN博客专家🏆,华为云享专家🏆,掘金年度人气作者🏆,阿里云专家博主🏆,51CTO专家博主🏆 ❤️技术活,该赏 ❤

    2023年04月18日
    浏览(57)
  • SQL server中:常见问题汇总(如:修改表时不允许修改表结构、将截断字符串或二进制数据等)

    步骤 选择菜单栏中的“工具”-“选项”,在选项对话框左栏中找到“设计器”,在设计器右边取消勾选“阻止保存要求重新创建表的更改”即可。 图例 注意 设计表时,尽量一次性设计成功,避免使用alter修改表,修改起来有各种约束,不容易修改。 解决: 你设置的数据类型

    2024年02月03日
    浏览(42)
  • ETL工程师面试题

    项目问题: 1.每天抽取数据10+怎么抽取 2.一般怎么把数据进行一些码值转换 数据的码值转换通常涉及以下几种情况: 3.用kettle调用存过 4.数据你们公司数据量有多大 5.数据仓库的架构(数据仓库的分层)分三层 6.组内人员构成: 组长 etl 开发 需求 数据分析 bi 7.在工作中写过

    2024年02月06日
    浏览(43)
  • 面试-Dubbo常见问题

    Dubbo 是一个RPC框架,包含注册中心,服务提供方,服务消费方,控制台,监控中心。 Dubbo 启动时会从注册中心拉取消费者需要的提供方信息,如果依赖的服务提供方不可用,Dubbo消费方会启动失败,并且不停的向注册中心请求提供方信息,抛出异常找不到对应的提供方。可以

    2024年02月08日
    浏览(47)
  • 面试-java常见问题

    程序计数器:当前线程所执行的字节码的行号指示器 java虚拟机栈:临时变量 元空间:类常量池,运行时常量池 方法区:类信息,静态变量 堆:对象实例,Sting常量池等 加载-链接(验证+准备+解析)-初始化-使用-卸载 加载 :将硬盘中的二进制文件转为内存中的class对象 链接

    2024年02月08日
    浏览(52)
  • docker常见面试问题详解

    在面试的时候,面试官常常会问一些问题: docker是什么,能做什么? docker和虚拟机的区别是什么呢? docker是用什么做隔离的? docke的网络类型?docker数据之间是如何通信的? docker的数据保存问题? 常用的docker命令? docker制作镜像相关? 下面,就让我来详细说明一些这些问

    2024年02月10日
    浏览(44)
  • List常见面试问题

    Java中的List是一种存放有序的、可以重复的数据的集合,它允许重复元素的存在。List中的元素都有对应的一个序列号(索引)记录着元素的位置,因此可以通过这个序列号来访问元素。 ‍ Java中的List有三种实现方式:ArrayList、LinkedList和Vector。其中,ArrayList是基于数组实现的,

    2024年02月09日
    浏览(38)
  • JavaEE 面试常见问题

    Mybatis 是一种典型的半自动的 ORM 框架,所谓的半自动,是因为还需要手动的写 SQL 语句,再由框架根据 SQL 及 传入数据来组装为要执行的 SQL 。其优点为: 1. 因为由程序员自己写 SQL ,相对来说学习门槛更低,更容易入门。 2. 更方便做 SQL 的性能优化及维护。 3. 对关系型数据

    2024年02月14日
    浏览(48)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包