【数据分析面试】1. 计算年度收入百分比(SQL)

在这里插入图片描述

题目

你需要为公司的营收来源生成一份年度报告。计算截止目前为止,在表格中记录的第一年和最后一年所创造的总收入百分比。将百分比四舍五入到两位小数。

示例:
输入:
annual_payments

列名类型
amountINTEGER
created_atDATETIME
statusVARCHAR
user_idINTEGER
amount_refundedINTEGER
productVARCHAR
idINTEGER

输出:

列名类型
percent_firstFLOAT
percent_lastFLOAT

答案

解题思路: 首先找到第一年和最后一年的记录。然后,我们需要计算这些年份的总收入。最后,我们将总收入除以截止目前为止的总收入,并将结果乘以100,得到百分比。

易错点: 题目中的amount_refunded字段是指退款金额,在计算总收入时需要将退款金额扣去

答案代码:

SELECTROUND((SELECT SUM(amount-amount_refunded) FROM annual_paymentsWHERE YEAR(created_at) = (SELECT MIN(YEAR(created_at)) FROM annual_payments))/SUM(amount-amount_refunded) * 100.0 , 2) AS percent_first,ROUND((SELECT SUM(amount-amount_refunded) FROM annual_paymentsWHERE YEAR(created_at) = (SELECT MAX(YEAR(created_at)) FROM annual_payments))/SUM(amount-amount_refunded) * 100.0, 2) AS percent_last
FROMannual_payments;

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

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

相关文章

CVAE——生成0-9数字图像(Pytorch+mnist)

1、简介 CVAE(Conditional Variational Autoencoder,条件变分自编码器)是一种变分自编码器(VAE)的变体,用于生成有条件的数据。在传统的变分自编码器中,生成的数据是完全由潜在变量决定的&…

STM32 字符数组结束符 “\0”

STM32 字符数组结束符 “\0” 使用字符数组使用printf,string参考 使用字符数组 使用STM32的串口发送数据,核心代码如下: char str[] "hello world!\n\r";while(1) {HAL_UART_Transmit(&huart2, str, sizeof (str), 10);HAL…

设计模式深度解析:AI如何影响装饰器模式与组合模式的选择与应用

​🌈 个人主页:danci_ 🔥 系列专栏:《设计模式》《MYSQL应用》 💪🏻 制定明确可量化的目标,坚持默默的做事。 AI如何影响装饰器模式与组合模式的选择与应用 在今天这个快速发展的技术时代&#…

高阶SQL语句(二)

一 子查询 也被称作内查询或者嵌套查询,是指在一个查询语句里面还嵌套着另一个查询语 句。子查询语句 是先于主查询语句被执行的,其结果作为外层的条件返回给主查询进行下一 步的查询过滤。 ①子语句可以与主语句所查询的表相同,也可以是不…

解决WSL更新速度慢的方案

在Windows上安装Docker Desktop时,如果选择使用WSL,则可能会出现在运行程序前要求升级WSL的步骤。程序会提示使用下面指令来升级 wsl.exe --update但是升级速度特别慢,于是在网络不稳定的情况下经常会出现下载失败的情况。 百度里一直没搜到…

2024中国(杭州)国际数字物流技术与应用展览会将于7月8日举办

2024中国(杭州)国际数字物流技术与应用展览会 2024年7月8-10日 | 杭州国际博览中心 同期举办:2024长三角快递物流供应链与技术装备展览会 数字贸易创新引领合作动能 《十四五规划》明确指出关于“加快数字化发展,建设数字中国…

STM32CubeMX学习笔记28---FreeRTOS软件定时器

一、软件定时器简介 1 、基本概念 定时器,是指从指定的时刻开始,经过一个指定时间,然后触发一个超时事件,用户 可以自定义定时器的周期与频率。类似生活中的闹钟,我们可以设置闹钟每天什么时候响, 还能设置…

微服务demo(三)nacosfeign

一、feign使用 1、集成方法 1.1、pom consumer添加依赖 <dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-openfeign</artifactId><version>2.2.6.RELEASE</version></dependency&…

C++刷题篇——08字符串重新排列

一、题目 二、解题思路 1、先对每个单词内部进行排序&#xff0c;再对单词间进行排序 2、使用map&#xff0c;key为单词&#xff0c;value为出现的次数 3、由于要对map排序&#xff0c;构造pair型的一维数组&#xff0c;将map的key、value放进去 4、构造函数&#xff0c;按照次…

算法学习——LeetCode力扣动态规划篇5(198. 打家劫舍、213. 打家劫舍 II、337. 打家劫舍 III )

算法学习——LeetCode力扣动态规划篇5 198. 打家劫舍 198. 打家劫舍 - 力扣&#xff08;LeetCode&#xff09; 描述 你是一个专业的小偷&#xff0c;计划偷窃沿街的房屋。每间房内都藏有一定的现金&#xff0c;影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统…

如何在jupyter使用新建的虚拟环境以及改变jupyter启动文件路径。

对于刚刚使用jupyter的新手来说&#xff0c;经常不知道如何在其中使用新建的虚拟环境内核&#xff0c;同时&#xff0c;对于默认安装的jupyter&#xff0c;使用jupyter notebook命令启动 jupyter 以后往往默认是C盘的启动路径&#xff0c;如下图所示&#xff0c;这篇教程将告诉…

如何使用 ChatGPT 进行编码和编程

文章目录 一、初学者1.1 生成代码片段1.2 解释功能 二、自信的初学者2.1 修复错误2.2 完成部分代码 三、中级水平3.1 研究库3.2 改进旧代码 四、进阶水平4.1 比较示例代码4.2 编程语言之间的翻译 五、专业人士5.1 模拟 Linux 终端 总结 大多数程序员都知道&#xff0c;ChatGPT …

server端

一、创建项目 expess server 1.1 安装nodemon npm i nodemon 1.2 设置连接数据库mongodb 安装mongoose npm i mongoose 在根目录新建config文件夹/db.config.js // 引入mongodb数据库操作模块 const mongoose require("mongoose") // 连接数据库mongoose.con…

【力扣刷题日记】1173.即时食物配送I

前言 练习sql语句&#xff0c;所有题目来自于力扣&#xff08;https://leetcode.cn/problemset/database/&#xff09;的免费数据库练习题。 今日题目&#xff1a; 1173.即时食物配送I 表&#xff1a;Delivery 列名类型delivery_idintcustomer_idintorder_datedatecustomer…

软件杯 深度学习YOLOv5车辆颜色识别检测 - python opencv

文章目录 1 前言2 实现效果3 CNN卷积神经网络4 Yolov56 数据集处理及模型训练5 最后 1 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 &#x1f6a9; **基于深度学习YOLOv5车辆颜色识别检测 ** 该项目较为新颖&#xff0c;适合作为竞赛课题方向&#xff0…

cesium加载.tif格式文件

最近项目中有需要直接加载三方给的后缀名tif格式的文件 <script src"https://cdn.jsdelivr.net/npm/geotiff"></script> 或者 yarn add geotiff npm install geotiff 新建tifs.js import GeoTIFF, { fromBlob, fromUrl, fromArrayBuffer } from geotif…

LabVIEW车载轴承振动监测系统

LabVIEW车载轴承振动监测系统 随着汽车工业的快速发展&#xff0c;车用轴承的稳定性和可靠性对保障车辆安全运行越来越重要。目前&#xff0c;大多数车用轴承工作在恶劣的环境下&#xff0c;容易出现各种故障。开发了一种基于LabVIEW的车载轴承振动监测系统&#xff0c;提高车…

【Linux】详解文件系统以及周边知识

一、磁盘的基本知识 磁盘中可以被划分成一个一个的环&#xff0c;每个环都是一个磁道。每个磁道又可以被均分成一个一个的扇区&#xff0c;扇区是磁盘IO的基本单位&#xff08;想要修改扇区中的一个比特位就必须把该扇区的全部比特位都加载到内存中&#xff09;。磁盘中的盘面&…

Linux进程间通信

文章目录 进程通信管道无名管道有名管道 信号通信kill、raise、alarmsignal 处理信号采用信号方式的进程间通信 共享内存shmget 创建ftok 创建key值shmat 映射地址shmdt/shmctl 删除采用共享内存方式的进程间通信 消息队列msgget 创建msgctl 删除msgsnd 发送消息msgrcv 接收消息…

C语言之动态内存管理

在C语言中我们在栈上开辟的空间是固定的&#xff0c;一旦确定好大小就不能随意改变&#xff0c;就想你创建了 int i 10; int arr[10] {0}; int i 一旦确定下来就是四个字节&#xff0c;arr一旦确定好大小在重新运行时也是不能改变的。 为此C语言引入了动态内存空间开辟&#…