大数据面试SQL(七):累加刚好超过各省GDP40%的地市名称

文章目录
累加刚好超过各省GDP40%的地市名称
一、题目
二、分析
三、SQL实战
四、样例数据参考
累加刚好超过各省GDP40%的地市名称
一、题目
现有各省地级市的gdp数据,求从高到低累加刚好超过各省GDP40%的地市名称,临界地市也需要。 例如:
- 浙江省的杭州24% 宁波 20% ,杭州+宁波=44% 大于40% 取出杭州、宁波
- 江苏省的苏州19% 南京 14% 无锡 12%,苏州+南京=33% ,苏州+南京+无锡=45%,取出 苏州、南京、无锡
样例数据:

目标结果:

二、分析
1、考察的是聚合函数开窗、聚合函数开窗时使用order by 进行累积求和。
2、要求包含临界地市,这里属于技巧的考察,这种使用补集的方式计算。
| 维度 | 评分 |
|---|---|
| 题目难度 | ⭐️⭐️⭐️⭐️ |
| 题目清晰度 | ⭐️⭐️⭐️⭐️⭐️ |
| 业务常见度 | ⭐️⭐️⭐️⭐️⭐️ |
三、SQL实战
1、计算每个城市占比,累积占比。
使用sum()开窗计算每个城市的gdp总额,以及使用sum()over(order by )计算累积占比。
查询语句:
select prov,city,gdp_amt,total_gpd_amt,ord_sum_gdp_amt,round(gdp_amt / total_gpd_amt,2) as city_percnt,round(ord_sum_gdp_amt / total_gpd_amt,2) as lj_city_percent
from (select prov,city,gdp_amt,sum(gdp_amt) over (partition by prov) as total_gpd_amt,sum(gdp_amt) over (partition by prov order by gdp_amt desc) as ord_sum_gdp_amtfrom t1_gdp) t;
查询结果:

2、求各省地市累积求和>40%的记录。
由于要求包含临界值,直接求取十分不方便,所以我们改变策略,gdp从低到高累加求和,求取累加求和 小于60% 的数据。
查询语句:
select prov,city,gdp_amt,total_gpd_amt,ord_sum_gdp_amt,round(gdp_amt / total_gpd_amt,2) as city_percnt,round(ord_sum_gdp_amt / total_gpd_amt,2) as lj_city_percent
from (select prov,city,gdp_amt,sum(gdp_amt) over (partition by prov) as total_gpd_amt,sum(gdp_amt) over (partition by prov order by gdp_amt asc) as ord_sum_gdp_amtfrom t1_gdp) t
where round(ord_sum_gdp_amt / total_gpd_amt,2) <0.6;
查询结果:

3、求补集,得到最后结果。
使用各省市全量数据,计算出不在上述结果的数据,即目标结果。
查询语句:
select t1.prov,t1.city
from t1_gdp t1left join(select prov,city,gdp_amt,total_gpd_amt,ord_sum_gdp_amt,round(gdp_amt / total_gpd_amt, 2) as city_percnt,round(ord_sum_gdp_amt / total_gpd_amt, 2) as lj_city_percentfrom (select prov,city,gdp_amt,sum(gdp_amt) over (partition by prov) as total_gpd_amt,sum(gdp_amt) over (partition by prov order by gdp_amt asc) as ord_sum_gdp_amtfrom t1_gdp) twhere round(ord_sum_gdp_amt / total_gpd_amt, 2) < 0.6) tton t1.prov = tt.provand t1.city = tt.city
where tt.city is null;
查询结果:

四、样例数据参考
--建表语句
CREATE TABLE t1_gdp (prov string COMMENT '省份',city string COMMENT '城市',gdp_amt decimal(10,2) comment 'GDP'
) COMMENT '各省地市GDP';
--插入数据
insert into t1_gdp(prov,city,gdp_amt)
values('浙江','杭州',20059),('浙江','宁波',16452.8),('浙江','温州',8730.6),('浙江','绍兴',7791),('浙江','嘉兴',7062.45),('浙江','台州',6240.68),('浙江','金华',6011.27),('浙江','湖州',4015.1),('浙江','衢州',2125.2),('浙江','舟山',2100.8),('浙江','丽水',1964.4),('江苏','苏州',24653.37),('江苏','南京',17421.4),('江苏','无锡',15456.19),('江苏','南通',11813.27),('江苏','常州',10116.36),('江苏','徐州',8900.44),('江苏','扬州',7423.26),('江苏','盐城',7403.87),('江苏','泰州',6731.66),('江苏','镇江',5264.07),('江苏','淮安',5015.06),('江苏','宿迁',4398.07),('江苏','连云港',4363.61);
- 📢博客主页:https://lansonli.blog.csdn.net
- 📢欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正!
- 📢本文由 Lansonli 原创,首发于 CSDN博客🙉
- 📢停下休息的时候不要忘了别人还在奔跑,希望大家抓紧时间学习,全力奔赴更美好的生活✨
相关文章:
大数据面试SQL(七):累加刚好超过各省GDP40%的地市名称
文章目录 累加刚好超过各省GDP40%的地市名称 一、题目 二、分析 三、SQL实战 四、样例数据参考 累加刚好超过各省GDP40%的地市名称 一、题目 现有各省地级市的gdp数据,求从高到低累加刚好超过各省GDP40%的地市名称,临界地市也需要。 例如: 浙江省…...
建议收藏!这4款设计师常用的素材管理软件,助你工作效率翻倍!
嘿,设计师们!你是否还在为那一堆堆散乱的素材头疼?每次灵感来袭,却要花费大量时间在层层文件夹中苦苦搜寻?别急,今天我就来给大家推荐4款超给力的素材管理软件,它们不仅能帮你轻松整理素材库&am…...
用于NLP领域的排序模型最佳实践
在自然语言处理(NLP)领域,用于排序任务的模型通常是指那些能够对文本进行排序、比较或评估其相关性的模型。这些模型可以应用于诸如文档排序、句子排序、问答系统中的答案排序等多种场景。在当前的研究和发展中,基于深度学习的方法…...
域名未备案的支付平台遭遇大攻击怎么办
域名未备案的支付平台遭遇大攻击怎么办?在当今数字化时代,支付平台的安全与稳定性是保障业务连续性和用户信任的关键。然而,对于因域名未备案而面临法律风险的支付平台来说,其安全挑战更为严峻。当这类平台遭遇大规模的网络攻击&a…...
【NI-DAQmx入门】LabVIEW数据采集基础应用程序框架
对于可管理规模的 LabVIEW 程序,分析现有程序或设计新程序的方法通常是从整体到具体,即从高级到低级的分析和设计。从一开始就直接深入细节可能会效率较低。 在设计阶段,开发人员首先将程序垂直划分为几个层级。从最顶层开始,他们…...
海山数据库(He3DB)源码详解:CommitTransaction函数源码详解
文章目录 海山数据库(He3DB)源码详解:CommitTransaction函数1. 执行条件2. 执行过程2.1 获取当前节点状态:2.2 检查当前状态:2.3 预提交处理:2.4 提交处理:2.5 释放资源:2.6 提交事务: 作者介绍…...
【网络】传输层TCP协议的报头和传输机制
目录 引言 报头和有效载荷 确认应答机制 捎带应答机制 超时重传机制 排序和去重 连接管理机制 个人主页:东洛的克莱斯韦克-CSDN博客 引言 TCP是传输层协议,全称传输控制协议。TCP报头中有丰富的字段以及协议本身会制定完善的策略来保证网络传输的…...
【活动报名】打造编程学习“知识宝库”:高效笔记记录与整理指南
如何高效记录并整理编程学习笔记? 在编程学习的旅程中,拥有一套高效的笔记记录和整理方法至关重要。以下将从三个方向为您详细介绍如何打造属于自己的编程学习“知识宝库”。 方向一:笔记工具选择 选择合适的笔记工具是高效记录编程学习笔记…...
使用Arduino IDE生成带有bootloader的烧录文件
使用Arduino IDE生成bin(烧录)文件 1、在“项目”中,选择“导出已编译的二进制文件” 2、在工程目录中,会出现“build”文件夹 3、在build文件夹中,有hex文件,以及包含bootloader的bin和hex文件 bin和h…...
搭建高可用OpenStack(Queen版)集群(九)之部署nova计算节点
一、搭建高可用OpenStack(Queen版)集群之部署计算节点 一、部署nova 1、安装nova-compute 在全部计算节点安装nova-compute服务 yum install python-openstackclient openstack-utils openstack-selinux -y yum install openstack-nova-compute -y 若yu…...
C# 字符串扩展方法
功能 1.判断一个字符串是否为null或者空字符串 2.判断一个字符串是否为null或者空白字符 3.判断一个字符串是否为数字 4.判断一个字符串是否为邮件 5.判断一个字符串是否为字母加数字 6.判断一个字符串是否为手机号码 7.判断一个字符串是否为电话号码 8.判断一个字符串是否为网…...
JookDB和MobaXterm下载安装使用
文章目录 1.使用背景2.MobaXterm的下载安装使用3.JooKDB的下载安装使用 1.使用背景 由于xshell和xftp等工具都是收费的,即使有破解版但是有的公司里不让用盗版的软件。可以使用MobaXterm来替代。 同理可使用JooKDB来代替收费的navicat 来连接数据库。 2.MobaXterm…...
Docker安装Nacos(详细教程)
Docker安装Nacos的步骤相对直接,但需要注意一些细节以确保安装成功。以下是一个详细的安装步骤指南: 1. 安装Docker 首先,确保你的系统中已经安装了Docker。如果尚未安装,你可以通过访问Docker的官方网站或使用包管理器…...
Pandas:提供了快速、灵活和表达式丰富的数据结构。
引言 Pandas是Python中最为广泛使用的数据分析和操作库之一,特别适用于处理结构化数据。该库的名称源自“Panel Data”的缩写,意为面板数据或多维数据。Pandas基于NumPy构建,继承了其高效的数组计算能力,并在此基础上进一步扩展&…...
强!小目标检测全新突破!检测速度快10倍,GPU使用减少73.4%
强!小目标检测全新突破,提出Mamba-in-Mamba结构,通过内外两层Mamba模块,同时提取全局和局部特征,实现了检测速度快10倍,GPU使用减少73.4%的显著效果! 【小目标检测】是近年来在深度…...
重修设计模式-创建型-原型模式
重修设计模式-创建型-原型模式 原型模式就是利用已有对象(原型)通过拷贝方式来创建对象的模式,达到节省对象创建时间的目的。适用于对象创建成本较大,且同一类的不同对象之间差别不大的场景。 比如一个对象中的数据需要经过复杂…...
S71200 - 编程 - 笔记
1 DEMO 1.1气阀控制 1.2 红绿灯 基于PLC红绿灯控制_哔哩哔哩_bilibili 2 介绍变量DB,M,I,Q的使用 在PLC编程中,通常会使用多种类型的变量来实现逻辑控制、数据存储和输入输出操作。以下是常见的PLC变量类型及其用途ÿ…...
【项目】畅聊天地博客测试报告
项目简介:本项目采用 SSM框架结合 Websocket 技术构建。用户通过简单的注册和登录即可进入聊天室,与其他在线用户实时交流。系统支持文字消息的快速发送和接收、消息实时推送,确保交流的及时性和流畅性。SSM 框架为项目提供了稳定的架构和高效…...
【Next】全局样式和局部样式
不同于 nuxt ,next 的样式绝大部分都需要手动导入。 全局样式 使用 sass 先安装 npm i sass -D 。 我们可以定义一个 styles 文件,存放全局样式。 variables.scss $fs30: 30px;mixin border() {border: 1px solid red; }main.scss use ./variables …...
关于Docker的详细介绍
Docker是一个开源的应用容器引擎,它允许开发者将应用程序及其依赖项打包到一个可移植的容器中,然后发布到任何流行的Linux或Windows操作系统的机器上,实现虚拟化。以下是关于Docker的详细介绍: ### 一、Docker的定义 Docker是一…...
国防科技大学计算机基础课程笔记02信息编码
1.机内码和国标码 国标码就是我们非常熟悉的这个GB2312,但是因为都是16进制,因此这个了16进制的数据既可以翻译成为这个机器码,也可以翻译成为这个国标码,所以这个时候很容易会出现这个歧义的情况; 因此,我们的这个国…...
解决本地部署 SmolVLM2 大语言模型运行 flash-attn 报错
出现的问题 安装 flash-attn 会一直卡在 build 那一步或者运行报错 解决办法 是因为你安装的 flash-attn 版本没有对应上,所以报错,到 https://github.com/Dao-AILab/flash-attention/releases 下载对应版本,cu、torch、cp 的版本一定要对…...
LLM基础1_语言模型如何处理文本
基于GitHub项目:https://github.com/datawhalechina/llms-from-scratch-cn 工具介绍 tiktoken:OpenAI开发的专业"分词器" torch:Facebook开发的强力计算引擎,相当于超级计算器 理解词嵌入:给词语画"…...
CMake 从 GitHub 下载第三方库并使用
有时我们希望直接使用 GitHub 上的开源库,而不想手动下载、编译和安装。 可以利用 CMake 提供的 FetchContent 模块来实现自动下载、构建和链接第三方库。 FetchContent 命令官方文档✅ 示例代码 我们将以 fmt 这个流行的格式化库为例,演示如何: 使用 FetchContent 从 GitH…...
自然语言处理——Transformer
自然语言处理——Transformer 自注意力机制多头注意力机制Transformer 虽然循环神经网络可以对具有序列特性的数据非常有效,它能挖掘数据中的时序信息以及语义信息,但是它有一个很大的缺陷——很难并行化。 我们可以考虑用CNN来替代RNN,但是…...
听写流程自动化实践,轻量级教育辅助
随着智能教育工具的发展,越来越多的传统学习方式正在被数字化、自动化所优化。听写作为语文、英语等学科中重要的基础训练形式,也迎来了更高效的解决方案。 这是一款轻量但功能强大的听写辅助工具。它是基于本地词库与可选在线语音引擎构建,…...
【Java学习笔记】BigInteger 和 BigDecimal 类
BigInteger 和 BigDecimal 类 二者共有的常见方法 方法功能add加subtract减multiply乘divide除 注意点:传参类型必须是类对象 一、BigInteger 1. 作用:适合保存比较大的整型数 2. 使用说明 创建BigInteger对象 传入字符串 3. 代码示例 import j…...
React---day11
14.4 react-redux第三方库 提供connect、thunk之类的函数 以获取一个banner数据为例子 store: 我们在使用异步的时候理应是要使用中间件的,但是configureStore 已经自动集成了 redux-thunk,注意action里面要返回函数 import { configureS…...
论文笔记——相干体技术在裂缝预测中的应用研究
目录 相关地震知识补充地震数据的认识地震几何属性 相干体算法定义基本原理第一代相干体技术:基于互相关的相干体技术(Correlation)第二代相干体技术:基于相似的相干体技术(Semblance)基于多道相似的相干体…...
A2A JS SDK 完整教程:快速入门指南
目录 什么是 A2A JS SDK?A2A JS 安装与设置A2A JS 核心概念创建你的第一个 A2A JS 代理A2A JS 服务端开发A2A JS 客户端使用A2A JS 高级特性A2A JS 最佳实践A2A JS 故障排除 什么是 A2A JS SDK? A2A JS SDK 是一个专为 JavaScript/TypeScript 开发者设计的强大库ÿ…...
