HiveSQL题——炸裂+开窗

一、每个学科的成绩第一名是谁?

0 问题描述

 基于学生成绩表输出每个科目的第一名是谁呢?

1 数据准备

with t1 as(select'zs'                                           as name,'[{"Chinese":80},{"Math":70}],{"English":60}]' as score_extunion allselect'ls'                                           as name,'[{"Chinese":90},{"Math":70}],{"English":90}]' as score_extunion allselect'ww'                                           as name,'[{"Chinese":60},{"Math":90}],{"English":80}]' as score_ext),t2 as(selectname,-- 需要把 [] " {} 都给去掉,方面后面操作regexp_replace(score_ext, '\\[|\\{|\\}|\\"|\\]', '') as scoresfrom t1),t3 as (selectname,split(score, ":")[0] as course,split(score, ":")[1] as scorefrom t2lateral view explode(split(scores, ',')) expl as score)selectname,course,score
from (selectcourse,name,score,row_number() over (partition by course order by score desc) as rnfrom t3) t4
where rn = 1;

2 数据分析

3 小结

该题目利用(行转列)炸裂+开窗进行 解决;

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

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

相关文章

Windows NVM(Node Version Manager)使用指南

Windows NVM(Node Version Manager)使用指南 引言 Node Version Manager (NVM) 是一个用于管理多个 Node.js 版本的工具,它允许开发者在同一台机器上安装和使用不同版本的 Node.js。虽然 NVM 最初是为 Unix-like 系统设计的,但 …

单链表的基本操作

定义一个结点 typedef struct ElemType{char name[20];int sex;int age;char number[11]; };//定义一个结点 typedef struct Lnode{ ElemType data;struct Lnode* next; }LNode,*LinkList;链表的初始化 一般包含两步:给结点分配空间,头指针指针域…

CompletableFuture使用详解

简单的任务,用Future获取结果还好,但我们并行提交的多个异步任务,往往并不是独立的,很多 时候业务逻辑处理存在串行[依赖]、并行、聚合的关系。如果要我们手动用 Future 实现,是非常麻烦的。 CompletableFutur…

JMeter基本使用

一、JMeter线程组相关 进程:正在运行的程序。线程:是进程中的执行线索。线程组:进程中有许多线程,为了方便管理,可以对线程按照性质分组,分组的结果就是线程组。PS:三者关系,一个进…

Pytest设置日志

在 pytest 中,您可以使用内置的日志功能来记录测试过程中的信息。pytest 默认使用了 logging 模块来处理日志记录。此外,您还可以使用 pytest 的插件来增强日志功能,比如 pytest-loguru 插件,它结合了 loguru 库来提供更强大的日志管理能力。 1. 使用内置的日志功能 设置…

【设计模式】(万字总结)深入理解Java中的创建型设计模式

1. 前言 在软件开发的世界里,设计模式是一种被广泛接受并应用的解决方案。它们不仅仅是代码的设计,更是对问题的思考和解决的方法论。在Java开发中,特别是在面向对象的编程中,设计模式尤为重要。创建型设计模式,作为设…

【初阶数据结构篇】实现顺序结构二叉树(堆的实现方法)

文章目录 实现顺序结构二叉树(堆)前言代码位置堆的概念与结构概念 堆的实现堆初始化和销毁堆的插入堆的判空堆的删除数据取堆顶数据 实现顺序结构二叉树(堆) 前言 ​ ⼀般堆使⽤顺序结构的数组来存储数据,堆是⼀种特…

一键生成惊艳图像:使用Stable Diffusion打造惊人视觉效果

一、简介 Stable Diffusion是一种由Stability AI开发的生成式AI模型,能够将文本提示转换为高质量的图像。作为生成式扩散模型的一部分,Stable Diffusion通过解析和理解输入的文本提示,逐步生成与描述相匹配的图像。这一技术不仅在图像生成和…

AUTOSAR从入门到精通-T-Box

目录 前言 算法原理 TBOX主要模块 主控模块 CAN通讯模块 高通4G模块 蓝牙模块 & WIFI & Bluetooth模块 WIFI模块 天线 T-BOX功能 网络接入 车辆信息实时上传 远程诊断 车辆异常告警上传 E/B-call服务 OTA功能 V2X 位置查询/车辆追踪 平台监控/国家监…

树莓派4b的Mysql数据库操作

卸载树莓派中的 MySQL。 停止 MySQL 服务: sudo systemctl stop mysql卸载 MySQL 服务器和客户端: sudo apt-get remove --purge mysql-server mysql-client mysql-common删除 MySQL 数据库和配置文件: sudo rm -rf /etc/mysql /var/lib/mysq…

鸿蒙next ArkUI 单例模式和手游sdk接口设计

前言: 各位同学大家,有段时间没有跟大家见面了,因为最近一直在更新鸿蒙的那个实战课程所以就没有去更新文章实在是不好意思, 所以今天就给大家更新一起鸿蒙里面的案例模式来给大家做一个分享。 作者:徐庆 团队:坚果派 公众号:“大前端之旅” 润开鸿生态技术专家,华为…

Vue3-导出导入excel

功能 主要实现excel导入导出功能,同时具有合并单元格,美化单元格等功能,引用依赖包exceljs、file-saver,好像也没有什么要介绍的,可以看看官网文档然后直接使用了 导入依赖包 pnpm install exceljs file-saver type…

MybatisPlus核心用法

MybatisPlus核心用法 目录 MybatisPlus核心用法1.使用MybatisPlus的基本步骤:2.MybatisPlus是如何获取实现CRUD的数据库表信息的?3.MybatisPlus的常用注解有哪些?如果表名称和实体类名称不符合约定该怎么做?IdType的常见类型有哪些…

漏洞复现-F6-11泛微-E-Cology-SQL

本文来自无问社区,更多漏洞信息可前往查看http://www.wwlib.cn/index.php/artread/artid/15575.html 0x01 产品简介 泛微协同管理应用平台e-cology是一套企业级大型协同管理平台 0x02 漏洞概述 该漏洞是由于泛微e-cology未对用户的输入进行有效的过滤&#xff0…

Python爬虫技术 第17节 使用BeautifulSoup

使用Python进行网页爬取是一个常见的任务,特别是当需要从网站上批量获取数据时。BeautifulSoup是一个非常流行的Python库,用于解析HTML和XML文档,非常适合用来提取网页中的信息。 下面我将通过一个简单的案例来介绍如何使用Python和Beautifu…

Skyeye云智能制造企业版源代码全部开放

智能制造一体化管理系统 [SpringBoot2 - 快速开发平台],适用于制造业、建筑业、汽车行业、互联网、教育、政府机关等机构的管理。包含文件在线操作、工作日志、多班次考勤、CRM、ERP 进销存、项目管理、EHR、拖拽式生成问卷、日程、笔记、工作计划、行政办公、薪资模…

vue3 快速入门 (六) : vue中调用HTTP请求

1. 本文环境 Vue版本 : 3.4.29Node.js版本 : v20.15.0系统 : Windows11 64位IDE : VsCode 1.91.0 2. 访问HTTP 在Vue中,访问HTTP,可以使用axios第三方库。 axios 是一个基于 promise 的网络请求库,可以用于浏览器和 node.js。 axios使用简…

DelegateExecution和EXecution有啥区别

DelegateExecution 和 Execution 都是 Activiti 引擎中用于表示流程实例的执行对象,但它们在具体使用上有一些区别: DelegateExecution • 接口:DelegateExecution 是一个接口,继承自 VariableScope 接口。它主要在扩展点&#…

遗传算法与深度学习实战——进化深度学习

遗传算法与深度学习实战——进化深度学习 0. 前言1. 进化深度学习1.1 进化深度学习简介1.2 进化计算简介 2. 进化深度学习应用场景3. 深度学习优化3.1 优化网络体系结构 4. 通过自动机器学习进行优化4.1 自动机器学习简介4.2 AutoML 工具 5. 进化深度学习应用5.1 模型选择&…

【mybatis的批量操作】

在日常开发中,如果要操作数据库的话,或多或少都会遇到批量数据的处理,我们公司使用的mybaits-plus作为持久层的框架,今天就简单介绍一下mybaits批量操作数据库的几种方式。 1.循环插入 其实这种方式并不是批量插入,只…