数据分析师 ---- SQL强化(2)

这篇具有很好参考价值的文章主要介绍了数据分析师 ---- SQL强化(2)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

数据分析师 ---- SQL强化(2)

题目一:SQL实现文本处理

现有试卷信息表examination_info(exam_id试卷ID, tag试卷类别, difficulty试卷难度, duration考试时长)
数据分析师 ---- SQL强化(2)
录题同学有一次手误将部分记录的试题类别tag、难度、时长同时录入到了tag字段,
请帮忙找出这些录错了的记录,并拆分后按正确的列类型输出。
由示例数据结果输出如下:
数据分析师 ---- SQL强化(2)
创建表

drop table if exists examination_info,exam_record;
CREATE TABLE examination_info (
    id int PRIMARY KEY AUTO_INCREMENT COMMENT '自增ID',
    exam_id int UNIQUE NOT NULL COMMENT '试卷ID',
    tag varchar(32) COMMENT '类别标签',
    difficulty varchar(8) COMMENT '难度',
    duration int NOT NULL COMMENT '时长',
    release_time datetime COMMENT '发布时间'
)CHARACTER SET utf8 COLLATE utf8_general_ci;
INSERT INTO examination_info(exam_id,tag,difficulty,duration,release_time) VALUES
  (9001, '算法', 'hard', 60, '2020-01-01 10:00:00'),
  (9002, '算法', 'hard', 80, '2020-01-01 10:00:00'),
  (9003, 'SQL', 'medium', 70, '2020-01-01 10:00:00'),
  (9004, '算法,medium,80','', 0, '2020-01-01 10:00:00');

题意分析:
通过题意我们能明白,题目主要让做的就是将数据填充错误的行进行分割字符串,让正确的数据放到对应的字段中

select  exam_id,
substring_index(tag,",",1) tag,
substring_index(substring_index(tag,",",-2),",",1) difficulty,
substring_index(tag,",",-1) duration
from examination_info
where difficulty=''

涉及知识点:
字符串拆分:substring_index(str, delim, count)

参数名 解释
str 需要拆分的字符串
delim 分隔符,通过某字符进行拆分
count 当 count 为正数,取第 n 个分隔符之前的所有字符; 当 count 为负数,取倒数第 n 个分隔符之后的所有字符。

可以嵌套使用

也可以使用regexp_substr函数使用正则表达式进行切分

题目二:语种播放量前三高所有歌曲

歌曲表:songplay
数据分析师 ---- SQL强化(2)
语种表:languageid
数据分析师 ---- SQL强化(2)
创建表:

drop table if exists  songplay;
create table `songplay`(
`id` int,
`playcnt` int,
`languageid` int
);
insert into songplay values(1,85001,1);
insert into songplay  values(2,80001,2);
insert into  songplay  values(3,60001,2);
insert into  songplay values(4,90001,1);
insert into  songplay values(5,69001,1);
insert into  songplay values(6,85001,1);
insert into  songplay values(7,70001,1);

drop table if exists language;
create table `language`(
`id` int,
`name` varchar(255)
);
insert into  language  values(1,'中文');
insert into  language values(2,'英文');

题意分析:
题目是要查询不同语种播放量前三高所有歌曲,当播放量一样的时候排名一样,所以这时候就需要考虑使用dense_rank函数先建立排名,最后在取排名每个排名为前3的歌曲。

DENSE_RANK()函数对序号进行并列排序,并且不会跳过重复的序号,比如序号为1、1、2

select language_name,songid,playcnt
from (
	select s.id songid,
	l.name language_name,s.playcnt,
	# 关键
	dense_rank() over(partition by name order by s.playcnt desc) rank_num
	from songplay s join language l
	on s.languageid = l.id
	# 排序
	order by l.id
) tmp
where rank_num<4

注意这个题目中隐层了一个要求,就是返回语种的顺序需要和语种表中出现的顺序一致,所以就需要order by l.id

关键代码解读:

dense_rank() over(partition by name order by s.playcnt desc) rank_num

使用窗口函数dense_rank() 不跳过序号排序,
partition by name 按照name进行分组
order by s.playcnt desc 按照 s.playcnt进行进行降序排序

总结:

这次两道SQL试题比较基础,题目一主要考察的是substring_index函数的应用,题目二考察的是窗口函数中dense_rank()over()的运用。文章来源地址https://www.toymoban.com/news/detail-445712.html

到了这里,关于数据分析师 ---- SQL强化(2)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 数据分析案例-数据分析师岗位招聘信息可视化

      🤵‍♂️ 个人主页:@艾派森的个人主页 ✍🏻作者简介:Python学习者 🐋 希望大家多多支持,我们一起进步!😄 如果文章对你有帮助的话, 欢迎评论 💬点赞👍🏻 收藏 📂加关注+ 目录 ​编辑 1.数据集介绍 2.实验工具 3.实验过程 3.1加载数据 3.2数据预处理 3.3数据可视化

    2024年02月16日
    浏览(41)
  • (CDA数据分析师学习笔记)第五章多维数据透视分析一

    商业智能报表:BI报表。 ETL: 全称 Extract-Transform-Load ,即提取(extract)、转换(transform)、加载(load)。 E 是第一步对源数据进行抽取,源数据主要来源于业务系统、文件数据、第三方数据。T是第二步,对数据进行适当处理,目的是为了下一步的加载。主要是筛选(有价值

    2024年04月11日
    浏览(33)
  • 大数据可视化分析建模:每个人都是数据分析师

    💂 个人网站:【工具大全】【游戏大全】【神级源码资源网】 🤟 前端学习课程:👉【28个案例趣学前端】【400个JS面试题】 💅 寻找学习交流、摸鱼划水的小伙伴,请点击【摸鱼学习交流群】 大数据可视化和数据分析已经成为现代社会中不可或缺的工具,不仅在商业领域,

    2024年02月06日
    浏览(39)
  • 【数据分析师求职面试指南】实战技能部分

    内容整理自《拿下offer 数据分析师求职面试指南》—徐粼著 第五章数据分析师实战技能 其他内容: 【数据分析师求职面试指南】必备基础知识整理 【数据分析师求职面试指南】必备编程技能整理之Hive SQL必备用法 【数据分析师求职面试指南】实战技能部分 基于历史数据和

    2023年04月12日
    浏览(35)
  • 人人都是数据分析师-数据分析之数据图表可视化(上)

      BI报表、运营同学的汇报报告中数据图表大多为 表格、折线图、柱状图和饼图,但是实际上还有很多具有代表性的可视化图表,因此将对常见的可视化图表进行介绍,希望这些图表可视化方法能够更好的提供数据的可用性。 数据是我们在数据分析工作中最坚实的朋友,但是

    2023年04月10日
    浏览(34)
  • 阿里云大数据分析师(ACP)认证,该如何备考?

    阿里云认证是基于核心技术及岗位的权威认证, 阿里云针对不同产品类别、用户成长阶段、生态岗位,精心打造不同的认证考试。 个人:证明您在对应技术领域的专业度,能够基于阿里云产品解决实际问题。获得更多阿里云生态下的就业机会。 公司:通过阿里云认证培养、

    2023年04月09日
    浏览(46)
  • 数据分析师初级—中级—高级,每个阶段都需要学习什么?

    先你需要看下这张图,这是一张数据分析师能力体系图: 通过图片,我们可以比较清晰的看到这三个阶段的数据分析师在各方面能力的差别了,那下面我们就来具体侃侃他们的区别。 初级水平 什么是初学者?如果解析学和数据科学对你来说是全新的领域,你也不知该行业的

    2024年02月10日
    浏览(35)
  • 数据分析师在人工智能与机器学习领域的重要作用

    人工智能(Artificial Intelligence, AI)和机器学习(Machine Learning, ML)是当今最热门的技术领域之一,它们正在驱动我们进入第四次工业革命。这些技术正在改变我们的生活方式、工作方式和社会结构。数据分析师在这个领域的作用非常重要,因为他们是在这个领域中的核心组成部分。

    2024年02月19日
    浏览(34)
  • 大数据工程师、数据挖掘师和数据分析师有啥区别

    随着互联网技术的不断提升,数据已经成为各大企业新的战场,而对于从业者来说,如果你对数据科学领域的工作感兴趣的话,肯定首先要了解一下数据科学领域都有哪些岗位。从岗位性质和主要工作内容不同我们可以把数据科学的岗位大概分为四类:数据产品经理、大数据

    2023年04月22日
    浏览(35)
  • [架构之路-174]-《软考-系统分析师》-5-数据库系统-7-数据仓库技术与数据挖掘技术

    数据仓库是一个面向主题的、集成的、相对稳定的、反映历史变化的数据集合,用于支持管理决策。近年来,人们对数据仓库技术的关注程度越来越尚,其原因是过去的几十年中 ,建设了无数的应用系统,积累了大量的数据,但这些数据没有得到很好的利用,有时反而成为企

    2023年04月23日
    浏览(45)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包