Sql刷题日志(day9)
一、笔试
1、limit offset:分页查询
SELECT column1, column2, ...
FROM table_name
LIMIT number_of_rows OFFSET start_row;
--跳过前 start_row 行,返回接下来的 number_of_rows 行。
2、lag、lead:查询前后行数据
--lag函数用于访问当前行的上一行(或指定行)的数据
LAG(column, n, default_value) OVER (PARTITION BY partition_columnORDER BY order_column
)
----lead函数用于访问当前行的下一行(或指定行)的数据
LEAD(column, n, default_value) OVER (PARTITION BY partition_columnORDER BY order_column
)
二、面试
1、求每个班级学生总成绩最高的3名
可以使用 SQL 的窗口函数和排名函数来解决这个问题。
假设学生表的名称为 students,包含学生的 id,班级 id 和成绩,那么可以使用以下 SQL 查询语句来获取每个班级学生总成绩最高的3名:
WITH ranked_scores AS
(SELECT student_id, class_id, score, RANK() OVER(PARTITION BY class_id ORDER BY SUM(score) DESC) AS rank
FROM students
GROUP BY student_id, class_id, score
)
SELECT class_id, student_id, SUM(score) AS total_score
FROM ranked_scores
WHERE rank <= 3
GROUP BY class_id, student_id
ORDER BY class_id, total_score DESC;
2、insert into 和 insert overwrite有什么区别?join 和left join的区别?
- 在关系型数据库中,insert into用于向表中插入新的行,而insert overwrite用于覆盖表中已有的数据,重新写入新的数据
- left join和join之间的区别在于,left join返回左边表中所有行,而右边表中没有匹配行的地方填充为 NULL。而join只返回两个表中都有匹配的行。另外,在使用left join时,需要注意左边表和右边表的顺序,因为左右表的顺序会影响连接结果的顺序。
3、与聚合函数一起使用的筛选关键字是什么?
与聚合函数一起使用的筛选关键字是HAVING。在使用聚合函数如COUNT、SUM、AVG等对数据进行分组后,可以使用HAVING关键字对分组后的数据进行筛选,类似于WHERE对原始数据的筛选。HAVING关键字接在GROUP BY语句后面,可以使用聚合函数和分组字段进行筛选
4、你对风控业务有多少认识?
- 风控业务主要是指对企业风险进行控制和管理的业务,其中包括信用评估、反欺诈、交易风险控制、合规监管等方面。
- 作为数据分析工程师,对风控业务的了解是很重要的。在此方面,我对信用评估和反欺诈有一定的了解,了解一些常见的风险控制手段和工具,例如评分卡、逻辑回归、决策树等等,以及一些常见的反欺诈技术,例如黑名单过滤、IP归属地识别等等。
- 另外,我还了解到合规监管在风控业务中的重要性,例如在个人信息保护、反洗钱、反恐怖融资等方面,都需要遵循国家的相关法规和政策。
总之,我认为风控业务是数据分析工程师所需要了解的重要领域之一。
5、介绍随机森林
- 随机森林(Random Forest)是一种集成学习算法,通过训练多个决策树并结合它们的预测结果来提高预测的准确性。
- 随机森林的基本原理是:构建多个决策树,每个决策树的特征和样本是随机选择的。在预测时,多个决策树的预测结果进行投票,选出出现次数最多的结果作为最终的预测结果。
- 随机森林的优点包括:
- 可以处理高维数据和非线性关系;
- 可以通过特征重要性评估方法获取特征的重要程度,帮助进行特征选择和数据可视化;
- 可以防止过拟合和提高模型的泛化能力。
- 随机森林的缺点包括:
- 训练速度较慢;
- 难以解释模型的预测结果。
- 在实际应用中,随机森林常用于分类和回归问题,比如文本分类、情感分析、股票价格预测等。
6、介绍降维方法
- 降维方法是指在保持数据重要信息的前提下,减少数据特征维度的方法。
- 在大数据处理中,降维方法可以用来减少存储空间、降低计算复杂度、提高模型效率等。
- 以下是一些常见的降维方法:
- 主成分分析(PCA):是一种线性降维方法,它通过将数据映射到低维空间中的新坐标系,最大程度地保留数据的方差来实现降维。PCA通常用于特征提取和数据可视化。
- t-SNE:是一种非线性降维方法,它将高维数据映射到二维或三维空间中,以便于可视化。t-SNE通过测量相似度来保留数据之间的局部结构,并将其映射到低维空间中。
- 局部线性嵌入(LLE):是一种非线性降维方法,它试图在低维空间中保留数据的局部结构。LLE通过在高维空间中找到每个数据点周围最近的数据点,并尝试将其映射到低维空间中的相应位置来实现降维。
- 独立成分分析(ICA):是一种非线性降维方法,它试图将数据分解为多个独立的成分。ICA通常用于信号处理和图像处理等领域。 在实际应用中,根据数据的特点和降维的目的,可以选择不同的降维方法。