数据分析面试题之分组求Top N值

简介: 笔记

在上次的面试过程中,遇到了一个数据分析的经典面试题,题目大概的是这样的:

1.png

求出每个店铺销量为第二的销量数和日期值


本题解析(方法一):本题主要考察我们分组求第N值的方法,通过运用mysql8中的窗口函数的row_number()函数,按照shopname分组,按照sales降序排序,得到出每个分组中的行号,然后通过子查询让rank_num = 2,即可求出每个店铺销量为第二的销量数和日期值。


代码演示:

-- 练习:求出每个店铺销量为第二的销量数和日期值(方法一)
select shopname,
       sale_date,
       sales
from (select shopname,
             sales,
             sale_date,
       row_number() over (partition by shopname order by sales desc ) as rank_num
from demo.chapter11) rank_table
where rank_table.rank_num = 2;

运行结果:

2.png

本题解析(方法二):通过运用where子查询,按照sales降序排序,取第二个值,也可以得出结果

代码演示:

SELECT
  *
FROM
  demo.chapter11 AS t2
WHERE
  sales = ( SELECT
                   sales
    FROM chapter11 AS t1
  WHERE t1.shopname = t2.shopname
  ORDER BY sales DESC LIMIT 1, 1 );

运行结果:

3.png

通过上面结果似乎达到我们的预期结果,通过窗口函数和子查询均可以得到结果,窗口函数这种写法更易理解一写,不知道还有哪位高手可以写出其他的写法!

数据源:chapter11.csv

shopname,sales,sale_date
A,1,2020/1/1
B,3,2020/1/1
C,5,2020/1/1
A,7,2020/1/2
B,9,2020/1/2
C,2,2020/1/2
A,4,2020/1/3
B,6,2020/1/3
C,8,2020/1/3
相关文章
|
7月前
|
数据采集 SQL 数据挖掘
2024年8个Python高效数据分析的技巧_python 数据分析 效率,2024年最新阿里社招p7面试几轮
2024年8个Python高效数据分析的技巧_python 数据分析 效率,2024年最新阿里社招p7面试几轮
|
2月前
|
数据挖掘
ChatGPT在常用的数据分析方法中的应用(分组分析)
ChatGPT在常用的数据分析方法中的应用(分组分析)
74 1
|
5月前
|
数据采集 机器学习/深度学习 数据可视化
了解数据科学面试中的Python数据分析重点,包括Pandas(DataFrame)、NumPy(ndarray)和Matplotlib(图表绘制)。
【7月更文挑战第5天】了解数据科学面试中的Python数据分析重点,包括Pandas(DataFrame)、NumPy(ndarray)和Matplotlib(图表绘制)。数据预处理涉及缺失值(dropna(), fillna())和异常值处理。使用describe()进行统计分析,通过Matplotlib和Seaborn绘图。回归和分类分析用到Scikit-learn,如LinearRegression和RandomForestClassifier。
111 3
|
7月前
|
SQL 数据可视化 数据挖掘
2024年8个Python高效数据分析的技巧。,2024年最新Python基础面试题2024
2024年8个Python高效数据分析的技巧。,2024年最新Python基础面试题2024
2024年8个Python高效数据分析的技巧。,2024年最新Python基础面试题2024
|
7月前
|
数据挖掘 数据处理 索引
Python数据分析面试:NumPy基础与应用
【4月更文挑战第16天】了解并熟练运用NumPy是衡量Python数据分析能力的关键。本文探讨了面试中常遇到的NumPy问题,包括数组创建、属性、索引切片、数组运算、统计函数以及重塑和拼接,并提供了相关代码示例。同时强调了易错点,如混淆Python列表与NumPy数组、误解广播规则等,提醒在数据处理中注意性能和内存效率。掌握这些知识点将有助于提升数据分析面试表现和技能。
151 5
|
7月前
|
数据采集 机器学习/深度学习 数据可视化
数据科学面试准备:解决Python数据分析常见问答和挑战
【4月更文挑战第12天】本文介绍了Python数据分析面试中常见的问题和挑战,涉及Pandas、NumPy、Matplotlib等库的基础知识,以及数据预处理、探索性分析、可视化、回归分析和分类分析的方法。例如,使用Pandas处理缺失值和异常值,利用Matplotlib和Seaborn进行数据可视化,通过Scikit-learn进行回归和分类模型的构建。
224 2
|
7月前
|
SQL 分布式计算 数据挖掘
面试官嫌我Sql写的太low?要求我重写还加了三个需求?——二战Spark电影评分数据分析
面试官嫌我Sql写的太low?要求我重写还加了三个需求?——二战Spark电影评分数据分析
81 0
面试官嫌我Sql写的太low?要求我重写还加了三个需求?——二战Spark电影评分数据分析
|
7月前
|
敏捷开发 测试技术 持续交付
2023年面试QA Manager / Test Lead职位时的Top 20问题
2023年面试QA Manager / Test Lead职位时的Top 20问题
112 0
|
SQL 数据挖掘 关系型数据库
pandas数据分析之分组聚合
在数据分析过程中,经常会需要根据某一列或多列把数据划分为不同的组别,然后再对其进行数据分析。本文将介绍pandas的数据分组及分组后的应用如对数据进行聚合、转换和过滤。
173 0
|
SQL 数据可视化 数据挖掘
chat GPT在数据分析面试的应用
在数据分析面试阶段,ChatGPT可以作为一个有用的工具,帮助你准备和应对各种数据分析相关的问题。下面将详细介绍ChatGPT在数据分析面试阶段的应用。 1. 数据分析基础知识: 在面试中,面试官可能会问到一些关于数据分析的基础知识问题,例如统计学概念、数据处理方法、数据可视化技巧等。你可以向ChatGPT提问这些问题,它可以给出相应的解释和答案,帮助你巩固和复习基础知识。例如,你可以问ChatGPT关于假设检验的原理和步骤,它可以给出相应的解释和示例。 2. 数据分析案例和问题: 在面试中,面试官可能会给你一些数据分析的案例和问题,要求你进行分析和解决。你可以向ChatGPT描述这些案例
207 0