效率真高!众安保险数据分析岗(实习)面试通过了,分享一下面试经验!

news2024/9/23 17:20:50

最近,我们社群组织了一场技术&面试讨论会,邀请了一些互联网大厂同学、参加社招和校招面试的同学,针对新手如何入门数据分析、机器学习算法、该如何备战、面试常考点分享等热门话题进行了深入的讨论。

基于社群的讨论,今天我整理了一个同学的面试题,分享给大家,希望对后续找工作的有所帮助。喜欢记得点赞、收藏、关注。更多技术交流&面经学习,可以文末加入我们交流群。


今天面了众安保险的数据分析岗,感觉很顺利,但是拢共就面了20min,还是有点没底

更新一下:过啦,当天下午三点面 五点就通知通过了!! 效率真高。

面试流程:

  1. 自我介绍

  2. 过去实习中影响最深刻的一个项目

  3. 两个简单的SQL,口述就行

    部门表(员工姓名、部门、薪资) 取出每个部门的最高薪资、平均薪资、总薪资

    用户表(用户id、登陆时间) 取出每天每个用户第二次登录的记录(我用窗口函数做的)

  4. 给我介绍了一下公司业务、部门构成、以及实习生的日常工作

  5. 反问

面试很简单,面试前做了一些准备也附上:

  1. sql的执行顺序

    FROM - ON - JOIN - WHERE - GROUP BY - WITH - HAVING - SELECT - DISTINCT - ORDER BY - LIMIT

    在 SQL 中,查询语句的执行顺序通常是按照以下步骤进行的:

    FROM:首先,从指定的表(或视图)中获取数据,这是查询的基本数据源。

    WHERE:然后,根据 WHERE 子句中的条件筛选出满足条件的行。

    GROUP BY:如果查询包含 GROUP BY 子句,则将结果按照指定的列进行分组。

    HAVING:在分组后,根据 HAVING 子句中的条件筛选出满足条件的分组。HAVING 子句可以被认为是 WHERE 子句针对分组后的结果的过滤器。

    SELECT:选择要检索的列,并且对数据进行计算、转换等操作。

    DISTINCT:如果查询包含 DISTINCT 关键字,则去除结果集中重复的行。

    ORDER BY:按照指定的列对结果集进行排序。

    LIMIT / OFFSET:如果使用了 LIMIT 或 OFFSET 子句,最后根据这些子句来限制结果集的大小或移动结果集的起始位置。
    需要注意的是,虽然这是一般情况下的执行顺序,但在实际执行过程中,数据库系统可能会对查询进行优化和重排,以提高性能。

  2. 表连接方式有哪些及其区别?

    在 SQL 中,连接是用于联合两个或多个表的操作,以便获取相关的数据。有几种连接方式,主要包括 INNER JOIN、LEFT JOIN(或 LEFT OUTER JOIN)、RIGHT JOIN(或 RIGHT OUTER JOIN)和 FULL JOIN(或 FULL OUTER JOIN)。以下是它们的主要区别:

    INNER JOIN:INNER JOIN 返回两个表中符合连接条件的行。如果某一行在其中一个表中没有匹配行,则该行不会包含在结果中。

    LEFT JOIN (或 LEFT OUTER JOIN):LEFT JOIN 返回左表中的所有行,以及右表中符合连接条件的行。如果在右表中没有匹配的行,则结果集中右侧的列将包含 NULL 值。

    RIGHT JOIN (或 RIGHT OUTER JOIN):RIGHT JOIN 返回右表中的所有行,以及左表中符合连接条件的行。如果在左表中没有匹配的行,则结果集中左侧的列将包含 NULL 值。

    FULL JOIN (或 FULL OUTER JOIN):FULL JOIN 返回左右两个表中的所有行,如果在其中一个表中没有匹配的行,则另一个表中对应的列将包含 NULL 值。

    在实际应用中,选择连接方式取决于你需要的结果。如果你只想获取两个表中匹配的行,可以使用 INNER JOIN。如果你想保留左表中的所有行,并且将右表中匹配的行加入,可以使用 LEFT JOIN。同样,RIGHT JOIN 是保留右表中的所有行,而 FULL JOIN 保留两个表中的所有行。

    连接操作可以根据数据之间的关系和业务需求来选择,因此了解不同连接方式的特点对于写出准确的 SQL 查询语句是很重要的。

  3. sql题,表A和表B,a.id = b.id ,保留两表的所有字段,用哪种连接方式?若没有共同的字段,用什么连接?union 和 union all的区别?

    在MySQL中,FULL JOIN语法是不支持的,但你可以通过使用LEFT JOIN和RIGHT JOIN的组合来模拟FULL JOIN的效果。FULL JOIN可以获取左表和右表中的所有行,并将它们组合在一起,缺失的值用NULL填充。这在MySQL中可以通过UNION和LEFT JOIN以及RIGHT JOIN来实现。以下是一个示例:

    sqlCopy codeSELECT *
    FROM tableA
    LEFT JOIN tableB ON tableA.id = tableB.id
    UNION
    SELECT *
    FROM tableA
    RIGHT JOIN tableB ON tableA.id = tableB.id

    这个查询首先使用LEFT JOIN从tableA获取所有行,然后使用UNION操作符将结果与RIGHT JOIN从tableB获取的所有行组合在一起。这样就模拟了FULL JOIN的效果。需要注意的是,UNION会自动去除重复的行,如果需要保留所有行,则可以使用UNION ALL。

    如果没有共同的字段,你可以使用CROSS JOIN连接方式。CROSS JOIN会返回两个表的笛卡尔积,即两个表的所有可能组合。

    sqlCopy codeSELECT *
    FROM tableA
    CROSS JOIN tableB;
    但请注意,CROSS JOIN会返回非常大的结果集,特别是当两个表都很大时,它可能会导致性能问题。因此,在使用CROSS JOIN时,务必要仔细考虑数据量的大小和性能影响。

    union与union all的区别在于,union 进行去重,而union all不去重

  4. sql去重方式有哪些?

    在SQL中,有几种不同的方法可以去重,具体取决于你的数据和需要。以下是一些常见的去重方式:

    DISTINCT关键字:使用SELECT语句与DISTINCT关键字一起,可以从结果集中去除重复的行。

    GROUP BY子句:使用GROUP BY子句,将相同的值聚合到一起,并且可以结合聚合函数如COUNT、SUM等使用。
    使用子查询:通过在SELECT语句中使用子查询,可以选择不重复的行。

    使用ROW_NUMBER()窗口函数:使用ROW_NUMBER()函数可以为每一行分配一个唯一的数字,然后可以根据这个数字过滤出不重复的行。

    使用UNION或UNION ALL操作符:如果你有两个或多个表,想要将它们的结果合并并去重,可以使用UNION或UNION ALL操作符。UNION会自动去除重复的行,而UNION ALL会保留所有行。

    这些是一些SQL中常见的去重方式,选择合适的方法取决于你的数据结构、需求和性能考虑。

  5. 窗口函数有哪些

    窗口函数(Window Functions)是一种SQL中强大的工具,用于在查询结果集中执行聚合、分析和计算操作。下面是一些常见的窗口函数:

    ROW_NUMBER():为结果集中的每一行分配一个唯一的数字。

    RANK():为结果集中的每一行分配一个排名,相同的值将获得相同的排名,但是会跳过相同排名数量。

    DENSE_RANK():与RANK()类似,但是不会跳过相同排名数量,排名是连续的。

    NTILE(n):将结果集划分为n个相等大小的桶,并为每个桶中的行分配一个桶号。

    LEAD(column, offset, default):获取当前行之后第offset个行的值。

    LAG(column, offset, default):获取当前行之前第offset个行的值。

    FIRST_VALUE(column):获取分组中第一行的指定列的值。

    LAST_VALUE(column):获取分组中最后一行的指定列的值。

    SUM(), AVG(), COUNT(), MIN(), MAX():这些聚合函数也可以用作窗口函数,用于在窗口内执行聚合操作而不是整个结果集。

    PERCENT_RANK():为结果集中的每一行计算百分比排名。

    CUME_DIST():计算当前行在整个分组中的累积分布百分比。

    PERCENTILE_CONT():计算分组中指定百分位数的近似值。

    LAG() OVER (PARTITION BY … ORDER BY …):在指定分区内根据指定顺序获取前一行的值。

    LEAD() OVER (PARTITION BY … ORDER BY …):在指定分区内根据指定顺序获取后一行的值。

    这些窗口函数可以在SELECT语句的SELECT列表、ORDER BY子句和GROUP BY子句中使用,并且通常与OVER子句一起使用,以定义窗口的边界和排序规则。窗口函数提供了强大的功能,可以在查询结果中进行复杂的分析和处理。

技术交流

独学而无优则孤陋而寡闻,技术要学会交流、分享,不建议闭门造车。

建立了数据分析和算法岗技术与面试交流群,面试真题、答案获取,均可加交流群获取,群友已超过2000人,添加时最好的备注方式为:来源+兴趣方向,方便找到志同道合的朋友。

方式①、微信搜索公众号:Python学习与数据挖掘,后台回复:交流
方式②、添加微信号:dkl88194,备注:交流

资料

我们打造了《数据分析算法实战案例宝典》,特点:从0到1轻松学习,方法论及原理、代码、案例应有尽有,所有案例都是按照这样的节奏进行表述。
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1483825.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ApplicationContext容器

ApplicationContext容器 1.概述 ApplicationContext接口代表了一个Spring容器,它主要负责实例化、配置和组装bean。ApplicationContext接口间接继承了BeanFactory接口,相较于BeanFactory一些基本的容器功能,ApplicationContext接口是在BeanFactory接口基础上进行了扩展,增…

Snagit 2024:让你的屏幕活动瞬间变得生动有力 mac/win版

Snagit 2024 屏幕录制与截图软件是一款功能强大的工具,专为现代用户设计,以满足他们在工作、学习和娱乐中对屏幕内容捕捉和分享的需求。这款软件结合了屏幕录制和截图功能,为用户提供了一种高效、便捷的方式来捕捉屏幕上的精彩瞬间。 Snagit…

HelixToolKit的模型旋转操作

前面加载了模型以后,鼠标拖动和缩放比较好操作;但是旋转似乎没有, 操作了一阵,也不是没有,应该是还不熟悉; 旋转的指示器在右下角,现在U面看到正面, 想看一下模型的背面&#xff0…

压缩视频大小的软件有哪些?5款软件推荐

压缩视频大小的软件有哪些?随着高清摄像设备的普及和网络速度的不断提升,视频文件变得越来越庞大,动辄数百兆甚至数GB的大小常常让用户在分享和存储时感到头疼。幸运的是,市面上有许多优秀的视频压缩软件可以帮助我们轻松应对这一…

鸿蒙岗位需求突增!移动端、PC端、IoT到底该怎么选?

“2024年是原生鸿蒙的关键一年,我们要加快推进各类鸿蒙原生应用的开发,集中打赢技术底座和三方生态两大最艰巨的战斗。”这是余承东在新年信中表达的决心。 随后在1月18日举行的鸿蒙生态千帆启航仪式上,华为宣布 HarmonyOS NEXT 鸿蒙星河版系…

《2023跨境电商投诉大数据报告》发布|亚马逊 天猫国际 考拉海购 敦煌网 阿里巴巴

2023年,跨境电商API接口天猫国际、京东国际和抖音全球购以其强大的品牌影响力和市场占有率,稳坐行业前三的位置。同时,各大跨境电商平台消费纠纷问题层出不穷。依据国内知名网络消费纠纷调解平台“电诉宝”(315.100EC.CN&#xff…

前端按钮动画

效果示例 代码示例 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"viewport" content"widthdevic…

pygame绘制繁花曲线

------------★Pygame系列教程★------------ Pygame教程01&#xff1a;初识pygame游戏模块 Pygame教程02&#xff1a;图片的加载缩放旋转显示操作 Pygame教程03&#xff1a;文本显示字体加载transform方法 Pygame教程04&#xff1a;使用pygame.draw绘制矩形、多边形、圆、椭圆…

【DDD】学习笔记-聚合和聚合根:怎样设计聚合?

今天我们来学习聚合&#xff08;Aggregate&#xff09;和聚合根&#xff08;AggregateRoot&#xff09;。 我们先回顾下上一讲&#xff0c;在事件风暴中&#xff0c;我们会根据一些业务操作和行为找出实体&#xff08;Entity&#xff09;或值对象&#xff08;ValueObject&…

鸿蒙Harmony应用开发—ArkTS声明式开发(通用属性:禁用控制)

组件是否可交互&#xff0c;可交互状态下响应点击事件、触摸事件、拖拽事件、按键事件、焦点事件和鼠标事件。 说明&#xff1a; 从API Version 7开始支持。后续版本如有新增内容&#xff0c;则采用上角标单独标记该内容的起始版本。 enabled enabled(value: boolean) 设置组…

SqlServer配置定时备份

在企业系统环境中&#xff0c;为了确保SQL Server数据库受到意外的人为错误、系统故障、病毒攻击等因素的影响&#xff0c;我们通常会选择定期备份数据库。但是随着时间尺度的拉长&#xff0c;如果每次备份都要去手动执行一次的话&#xff0c;可能会觉得有些麻烦&#xff0c;或…

网页版图像处理软件开发服务:助您项目在市场竞争中脱颖而出

在当今数字化时代&#xff0c;图像处理在各个行业中扮演着重要的角色&#xff0c;虎克专注于提供定制化的网页版图像处理软件开发服务&#xff0c;为您的项目保驾护航。 1.网页版图像处理软件的定制化需求 1.1行业特定功能 针对不同的业务需求&#xff0c;深入了解行业特点&…

MapFi:面向室内定位的Wi-Fi基础设施自主地图构建

文献来源&#xff1a; X. Tong, H. Wang, X. Liu and W. Qu, "MapFi: Autonomous Mapping of Wi-Fi Infrastructure for Indoor Localization," in IEEE Transactions on Mobile Computing, vol. 22, no. 3, pp. 1566-1580, 1 March 2023, doi: 10.1109/TMC.2021.31…

FastAPI 的 quickstart

从这一章往后我们就正式开始学习 FastAPI 了 代码 FastAPI 环境安装 python 环境安装 根据要求至少需要 python 3.8及其以上&#xff0c;可以去 python 官网 自行下载安装, 本文中我们用 python 3.11 FastAPI 环境安装 pip install fastapi pip install "uvicorn[sta…

【Java程序设计】【C00322】基于Springboot的高校竞赛管理系统(有论文)

基于Springboot的高校竞赛管理系统&#xff08;有论文&#xff09; 项目简介项目获取开发环境项目技术运行截图 项目简介 这是一个基于Springboot的高校竞赛管理系统&#xff0c;本系统有管理员、老师、专家以及用户四种角色&#xff1b; 管理员&#xff1a;首页、个人中心、管…

Stable Cascade又升级了,现在只需要两个模型

Stable Cascade这个模型&#xff0c;大家如果还有印象的话&#xff0c;是需要下载三个模型的&#xff0c;分别是Stage_a,Stage_b和Stage_c,如果全都下载下来&#xff0c;需要20多个G&#xff0c;但是最近使用ComfyUI做尝试的时候&#xff0c;发现官方的案例中已经没有用到单独的…

Redis是单线程还是多线程?

单线程为什么这么快的原因&#xff1a; 后来引入了多线程是因为&#xff1a;

微信小程序云开发教程——墨刀原型工具入门(动态组件)

引言 作为一个小白&#xff0c;小北要怎么在短时间内快速学会微信小程序原型设计&#xff1f; “时间紧&#xff0c;任务重”&#xff0c;这意味着学习时必须把握微信小程序原型设计中的重点、难点&#xff0c;而非面面俱到。 要在短时间内理解、掌握一个工具的使用&#xf…

[Linux]如何理解kernel、shell、bash

文章目录 概念总览kernelshell&bash 概念总览 内核(kernel) &#xff0c;外壳(shell) &#xff0c;bash kernel kernel是指操作系统中的核心部分&#xff0c;用户一般是不能直接使用kernel的。它主要负责管理硬件资源和提供系统服务&#xff0c;如内存管理、进程管理、文件…

Python列表中添加删除元素不走弯路

1.append() 向列表中添加单个元素&#xff0c;一般用于尾部追加 list1 ["香妃", "乾隆", "贾南风", "赵飞燕", "汉武帝"]list1.append("周瑜") print(list1) # [香妃, 乾隆, 贾南风, 赵飞燕, 汉武帝, 周瑜]…