欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 教育 > 高考 > 数据开发岗笔试题>>sql(hive) ,excel [2025]

数据开发岗笔试题>>sql(hive) ,excel [2025]

2025/5/9 15:57:07 来源:https://blog.csdn.net/weixin_40121264/article/details/146294430  浏览:    关键词:数据开发岗笔试题>>sql(hive) ,excel [2025]

sql

SELECT user_id, AVG(loan_amount) AS avg_loan_amount
FROM loan
GROUP BY user_id
HAVING AVG(loan_amount) > 20000;

授信表:credit
字段包含user_id(用户id),credit_id(授信id),credit_time(授信时间yyyy-MM-dd HH:mm:ss),credit_status(授信状态)。
支用表:loan
字段包含user_id(用户id),loan_id(订单id),credit_id(授信id),loan_time(支用时间yyyy-MM-dd HH:mm:ss),loan_amount(支用金额)。
1)查询累积授信总次数、当日授信总次数、当日授信总人数、当日授信但未支用人数。

还款计划表:repay_plan;
字段包含loan_order_id(订单号), duration_num(期数), plan_begin_time(计划还款开始时间), plan_end_time(计划还款结束时间), principal(应还金额)。
还款流水表:repay_detail;
字段包含loan_order_id(订单号), real_repay_time(实际还款时间), repay_amount(实际还款金额)。
1).查询每个订单按时还款、1-15日内还款、15日+还款的还款金额;
2).查询每个订单近3日还款金额、当月还款金额、近3个月还款金额;

1).查询每个订单按时还款、1-15日内还款、15日+还款的还款金额;

SELECT rp.loan_order_id AS order_id,SUM(CASE WHEN rd.real_repay_time BETWEEN rp.plan_begin_time AND rp.plan_end_time THEN rd.repay_amount ELSE 0 END) AS on_time_repay_amount, -- 按时还款金额SUM(CASE WHEN rd.real_repay_time > rp.plan_end_time AND DATEDIFF(rd.real_repay_time, rp.plan_end_time) BETWEEN 1 AND 15 THEN rd.repay_amount ELSE 0 END) AS within_15_days_repay_amount, -- 1-15日内还款金额SUM(CASE WHEN rd.real_repay_time > rp.plan_end_time AND DATEDIFF(rd.real_repay_time, rp.plan_end_time) > 15 THEN rd.repay_amount ELSE 0 END) AS over_15_days_repay_amount -- 15日+还款金额
FROM repay_plan rp
LEFT JOIN repay_detail rd 
ON rp.loan_order_id = rd.loan_order_id
GROUP BY rp.loan_order_id;

2).查询每个订单近3日还款金额、当月还款金额、近3个月还款金额;

SELECT rd.loan_order_id AS order_id,SUM(CASE WHEN rd.real_repay_time >= DATE_SUB(CURRENT_DATE(), 2) THEN rd.repay_amount ELSE 0 END) AS last_3_days_repay_amount, -- 近3日还款金额SUM(CASE WHEN DATE_FORMAT(rd.real_repay_time, 'yyyy-MM') = DATE_FORMAT(CURRENT_DATE(), 'yyyy-MM') THEN rd.repay_amount ELSE 0 END) AS current_month_repay_amount, -- 当月还款金额SUM(CASE WHEN rd.real_repay_time >= DATE_SUB(CURRENT_DATE(), 90) THEN rd.repay_amount ELSE 0 END) AS last_3_months_repay_amount -- 近3个月还款金额
FROM repay_detail rd
GROUP BY rd.loan_order_id;

请用一段sql代码取出每位学生最后一场语文考试的成绩和最后一场数学考试的成绩(假设同一科目同天考试次数<=1次)
表名:student_score 每一行数据代表某位学生在某一天某门学科的考试成绩
字段:name(姓名),subject(科目),score(分数),date(考试日期,yyyy-mm-dd)

WITH last_exam AS (SELECT name,subject,score,date,ROW_NUMBER() OVER (PARTITION BY name, subject ORDER BY date DESC) AS rnFROM student_scoreWHERE subject IN ('语文', '数学')
)
SELECT name,MAX(CASE WHEN subject = '语文' AND rn = 1 THEN score END) AS last_chinese_score,MAX(CASE WHEN subject = '数学' AND rn = 1 THEN score END) AS last_math_score
FROM last_exam
GROUP BY name;

解析: hql有partition by 的作用

 有 PARTITION BY name, subject 的 SQL 查询结果

没有 PARTITION BY 的 SQL 查询结果

excel

题目1 

计算总分

  • 在“总分”列的第一个单元格中输入公式:

    =C2+D2+E2

    这里假设C2、D2、E2分别是语文、数学、英语的成绩。

  • 按回车键,Excel会自动计算出总分。

  • 将这个单元格的公式向下拖动,应用到其他学生的总分计算中

题目2 

假设数据源如下:  

姓名科目成绩
Sam语文85
Sam数学90
Sam英语88
Jack语文78
Jack数学82
Jack英语80
Rose语文92
Rose数学95
Rose英语90
Courtney语文88
Courtney数学85
Courtney英语87

 

题目3

假设数据源如下: 

在 A1:E5 区域

最后填充结果 

题目4

解析:

创建透视表

设置透视表字段

设置小数位数

任意一个单元格>>右键>>数字格式>>数值的小数位数

 

题目5

解析

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词