当前位置: 首页 > news >正文

SQL实战测试

SQL实战测试


(请写下 SQL 查询语句,不需要展示结果)

a

DateSalesCustomerRevenue
2019/1/1张三A10
2019/1/5张三A18

1. **用一条 ** SQL 语句写出每个月,每个销售有多少个客户收入多少

输出结果表头为“月”,“销售”,“客户数”,“收入”

SELECTEXTRACT(YEAR FROM Dates) || '-' || EXTRACT(MONTH FROM Dates) AS "月",Sales AS "销售",COUNT(DISTINCT Customer) AS "客户数",SUM(Revenue) AS "收入"
FROMA
GROUP BYEXTRACT(YEAR FROM Dates) || '-' || EXTRACT(MONTH FROM Dates),Sales
ORDER BY"月","销售";这个查询语句做了以下几件事情:使用 EXTRACT 函数从 sale_date 字段中提取年份和月份,并将其格式化为 "年-月" 的格式,作为 "月" 列。
使用 COUNT(DISTINCT customer_id) 来计算每个销售员每个月有多少个不同的客户。
使用 SUM(amount) 来计算每个销售员每个月的总收入。
使用 GROUP BY 来按年月和销售员分组,以确保我们得到每个月每个销售员的数据。
使用 ORDER BY 来对结果进行排序,首先按月份,然后按销售员。

2. 用一条 SQL 语句查询出 A B 客户的每个月的收入

输出结果表头为“月”,“客户”,“月收入”

SELECTEXTRACT(YEAR FROM Dates) || '-' || LPAD(EXTRACT(MONTH FROM Dates), 2, '0') AS "月",Customer AS "客户",SUM(Revenue) AS "月收入"
FROMA
WHERECustomer IN ('A', 'B')
GROUP BYEXTRACT(YEAR FROM Dates) || '-' || LPAD(EXTRACT(MONTH FROM Dates), 2, '0'),Customer
ORDER BY"月","客户";这个查询语句做了以下几件事情:使用 EXTRACT 函数从 sale_date 字段中提取年份和月份,并将其格式化为 "年-月" 的格式,作为 "月" 列。月份使用 LPAD 函数确保两位数字的格式(例如,01表示1月)。
使用 SUM(amount) 来计算每个客户每个月的总收入。
使用 WHERE 子句来限制查询只包括客户ID为 'A''B' 的记录。
使用 GROUP BY 来按年月和客户ID分组,以确保我们得到每个月每个客户的数据。
使用 ORDER BY 来对结果进行排序,首先按月份,然后按客户ID。

3. 用一条 SQL 语句查询出总收入在 300 以上的客户

输出结果表头为“客户”,“收入”

SELECTCustomer AS "客户",SUM(Revenue) AS "收入"
FROMA
GROUP BYCustomer
HAVINGSUM(REVENUE) > 300
ORDER BY"收入" DESC;这个查询语句做了以下几件事情:使用SUM(amount)来计算每个客户的总收入。
使用GROUP BY customer_id来按客户ID分组,以确保我们得到每个客户的数据。
使用HAVING SUM(amount) > 300来过滤出总收入超过300元的客户。注意,HAVING子句是在数据分组后应用的条件,因此它可以用来过滤聚合函数的结果。
使用ORDER BY "收入" DESC来对结果进行排序,按照收入从高到低排序。

4. **张三,王五为 ** 1 **组,李四,赵六为 ** 2 组,用一条 SQL 写出 1-4 1 组和 2 组对应的收入

输出结果表头为:“月”,“组”,“月收入”

SELECTEXTRACT(YEAR FROM sale_date) || '-' || LPAD(EXTRACT(MONTH FROM sale_date), 2, '0') AS "月",group_id AS "组",SUM(amount) AS "月收入"
FROMsales
JOINgroups ON sales.salesperson = groups.salesperson
WHEREEXTRACT(MONTH FROM sale_date) BETWEEN 1 AND 4
GROUP BYEXTRACT(YEAR FROM sale_date) || '-' || LPAD(EXTRACT(MONTH FROM sale_date), 2, '0'),group_id
ORDER BY"月","组";这个查询语句做了以下几件事情:使用 EXTRACT 函数从 sale_date 字段中提取年份和月份,并将其格式化为 "年-月" 的格式,作为 "月" 列。月份使用 LPAD 函数确保两位数字的格式(例如,01表示1月)。
使用 SUM(amount) 来计算每个组每个月的总收入。
使用 JOIN 来连接 sales 表和 groups 表,以便我们可以根据销售员的组ID进行分组。
使用 WHERE 子句来限制查询只包括1月到4月的记录。
使用 GROUP BY 来按年月和组ID分组,以确保我们得到每个月每个组的数据。
使用 ORDER BY 来对结果进行排序,首先按月份,然后按组ID。

5. 用一条 SQL 语句查询出每个销售总收入最高的两天

输出结果表头为“销售”,“日期”,“总收入”

SELECTsalesperson AS "销售",sale_date AS "日期",amount AS "总收入"
FROM (SELECTsalesperson,sale_date,amount,ROW_NUMBER() OVER (PARTITION BY salesperson ORDER BY amount DESC) AS rnFROMsales
) t
WHERErn <= 2
ORDER BY"销售","日期";这个查询语句做了以下几件事情:使用 ROW_NUMBER() 窗口函数来为每个销售员的收入按降序排列,为每天的收入分配一个行号。
使用 PARTITION BY salesperson 来确保行号是在每个销售员的记录中独立分配的。
使用 ORDER BY amount DESC 来确保收入最高的天有最小的行号。
从子查询中选择行号小于或等于2的记录,这将给我们每个销售员收入最高的两天。
使用 ORDER BY "销售", "日期" 来对结果进行排序,首先按销售员,然后按日期

b

CustomerCustomer_idSexual
A00001
B00002
C00003
D00004
E00005
F00006

6. 使用表****A 和表 B ,用一条 SQL 语句查询出每个客户的总收入

输出结果表头为“客户”,“客户 id ”,“性别”,“总收入”


SELECTB.Customer AS "客户",B.Customer_id AS "客户ID",B.Sexual AS "性别",SUM(A.Revenue) AS "总收入"
FROMB
JOINA ON B.customer = A.customer
GROUP BYB.Customer,B.Customer_id,B.Sexual
ORDER BY"总收入" DESC;这个查询语句做了以下几件事情:使用JOIN语句来连接表A和表B,通过customer_id字段将两个表关联起来。
使用SUM(B.sale_amount)来计算每个客户的总收入。
使用GROUP BY来按客户姓名、客户ID和性别分组,以确保我们得到每个客户的数据。
使用ORDER BY "总收入" DESC来对结果进行排序,按照总收入从高到低排序。

建表信息与查询测试结果
表A:

--drop table A;
CREATE TABLE A (Dates	VARCHAR(512),Sales	VARCHAR(512),Customer	VARCHAR(512),Revenue 	INT
);INSERT INTO A (Dates, Sales, Customer, Revenue ) VALUES (TO_DATE('2019/1/1', 'YYYY-MM-DD'), '张三', 'A', '10 ');
INSERT INTO A (Dates, Sales, Customer, Revenue ) VALUES (TO_DATE('2019/1/5', 'YYYY-MM-DD'), '张三', 'A', '18');

表B:

--drop table B;
CREATE TABLE B (Customer	VARCHAR(512),Customer_id	VARCHAR(512),Sexual 	VARCHAR(512)
);INSERT INTO B (Customer, Customer_id, Sexual ) VALUES ('A', '00001', '男');
INSERT INTO B (Customer, Customer_id, Sexual ) VALUES ('B', '00002', '男');
INSERT INTO B (Customer, Customer_id, Sexual ) VALUES ('C', '00003', '女');
INSERT INTO B (Customer, Customer_id, Sexual ) VALUES ('D', '00004', '男');
INSERT INTO B (Customer, Customer_id, Sexual ) VALUES ('E', '00005', '女');
INSERT INTO B (Customer, Customer_id, Sexual ) VALUES ('F', '00006', '女');

查询结果展示:
1.在这里插入图片描述
2.在这里插入图片描述
6.在这里插入图片描述

相关文章:

SQL实战测试

SQL实战测试 &#xff08;请写下 SQL 查询语句&#xff0c;不需要展示结果&#xff09; 表 a DateSalesCustomerRevenue2019/1/1张三A102019/1/5张三A18 1. **用一条 ** SQL 语句写出每个月&#xff0c;每个销售有多少个客户收入多少 输出结果表头为“月”&#xff0c;“销…...

Java 基础教学:基础语法-变量与常量

变量 变量是程序设计中的基本概念&#xff0c;它用于存储信息&#xff0c;这些信息可以在程序执行过程中被读取和修改。 变量的声明 在Java中&#xff0c;声明变量需要指定变量的数据类型以及变量的名称。数据类型定义了变量可以存储的数据种类&#xff08;例如整数、浮点数…...

vue3使用element-plus手动更改url后is-active和菜单的focus颜色不同步问题

在实习&#xff0c;给了个需求做个新的ui界面&#xff0c;遇到了一个非常烦人的问题 如下&#xff0c;手动修改url时&#xff0c;is-active和focus颜色不同步 虽然可以直接让el-menu-item:focus为白色能解决这个问题&#xff0c;但是我就是想要有颜色哈哈哈&#xff0c;有些执…...

每天五分钟深度学习框架pytorch:从底层实现一元线性回归模型

本文重点 本节课程我们继续搭建一元线性回归模型,不同的是这里我们不使用pytorch框架已经封装好的一些东西,我们做这个目的是为了更加清楚的看到pytorch搭建模型的本质,为了更好的理解,当然实际中我们还是使用pytorch封装好的一些东西,不要重复造轮子。 模型搭建 #定义…...

编辑器加载与AB包加载组合

解释&#xff1a; 这个 ABResMgr 类是一个资源加载管理器&#xff0c;它用于整合 AB包&#xff08;Asset Bundle&#xff09;资源加载和 编辑器模式资源加载。通过这个管理器&#xff0c;可以根据开发环境选择资源加载方式&#xff0c;既支持 运行时使用Asset Bundle加载&…...

【c++】vector中的back()函数

nums.back() 是 C 中 std::vector 类的一个成员函数&#xff0c;用于获取数组&#xff08;向量&#xff09;中的最后一个元素。以下是一些关于 nums.back() 的详细解释和示例使用&#xff1a; 1. 功能 nums.back() 返回数组 nums 中的最后一个元素。如果数组为空&#xff0c;…...

[分享] SQL在线编辑工具(好用)

在线SQL编写工具&#xff08;无广告&#xff09; - 在线SQL编写工具 - Web SQL - SQL在线编辑格式化 - WGCLOUD...

element-ui隐藏表单必填星号

// 必填星号在前显示 去掉 .el-form-item.is-required:not(.is-no-asterisk) > .el-form-item__label:before { content: !important; margin-right: 0px!important; } // 必填星号在结尾显示 .el-form-item.is-required:not(.is-no-asterisk) > .el-form-item__labe…...

自动驾驶系列—激光雷达点云数据在自动驾驶场景中的深度应用

&#x1f31f;&#x1f31f; 欢迎来到我的技术小筑&#xff0c;一个专为技术探索者打造的交流空间。在这里&#xff0c;我们不仅分享代码的智慧&#xff0c;还探讨技术的深度与广度。无论您是资深开发者还是技术新手&#xff0c;这里都有一片属于您的天空。让我们在知识的海洋中…...

C#删除dataGridView 选中行

关键在于&#xff1a;从最后一行开始删除。 从前往后删只能删除其中一半&#xff0c;我理解是再remove行的时候dataGridView内部行序列发生了变化&#xff0c;包含在选中行中的特定行会被忽略&#xff0c;从后往前删就可避免这个问题&#xff0c;最后一行的行号影响不到前面的…...

K8S调度不平衡问题分析过程和解决方案

不平衡问题排查 问题描述&#xff1a; 1、业务部署大量pod(据反馈&#xff0c;基本为任务型进程)过程中&#xff0c;k8s node内存使用率表现不均衡&#xff0c;范围从80%到百分之几&#xff1b; 2、单个node内存使用率超过95%&#xff0c;仍未发生pod驱逐&#xff0c;存在node…...

Python中类、继承和方法重写的使用

&#x1f600;前言 本篇博文将介绍如何定义类、创建类的实例、访问类的成员、使用属性、实现继承及方法重写&#xff0c;希望你能够喜欢 &#x1f3e0;个人主页&#xff1a;晨犀主页 &#x1f9d1;个人简介&#xff1a;大家好&#xff0c;我是晨犀&#xff0c;希望我的文章可以…...

【Neo4j】- 轻松入门图数据库

文章目录 前言-场景一、Neo4j概述二、软件安装部署1.软件下载2.软件部署3.软件使用4.语法学习 总结 前言-场景 这里用大家都了解的关系数据与图数据据库对比着说,更加方便大家理解图数据库的作用 图形数据库和关系数据库均存储信息并表示数据之间的关系。但是&#xff0c;关系…...

LeetCode 206 - 反转链表

解题思路 我们可以使用迭代的方法来实现链表的反转&#xff0c;这里我们先介绍迭代的方法。迭代的思路是&#xff1a;从头节点开始&#xff0c;依次将节点的next指针进行反转&#xff0c;使得当前节点的next指向其前一个节点&#xff0c;然后依次向后移动指针&#xff0c;直至…...

AI生成大片,Movie Gen 可以生成长视频并配上完美的音效,带给观众更好的观看体验。

之前的文章中已经给大家介绍了一些关于长视频生成相关的技术&#xff0c;AI生成大片已经越来越近了。感兴趣的小伙伴可以点击下面链接阅读~ Movie Gen 的工作原理可以简单理解为两个主要部分&#xff1a;一个是生成视频的模型&#xff0c;另一个是生成音频的模型。首先&#x…...

Flink on yarn模式下,JobManager异常退出问题

这个问题排除了很久&#xff0c;其中更换了Flink版本&#xff0c;也更换了Hadoop版本一直无法解决&#xff0c;JobManager跑着跑着就异常退出了。资源管理器上是提示运行结束&#xff0c;运行状态是被Kill掉。 网上搜了一圈&#xff0c;都说内存不足、资源不足&#xff0c;配置…...

面对AI算力需求激增,如何守护数据中心机房安全?

随着人工智能&#xff08;AI&#xff09;技术飞速发展&#xff0c;AI算力需求呈现爆发式增长&#xff0c;导致对数据设备电力的需求指数级攀升。这给数据中心带来前所未有的挑战和机遇&#xff0c;从提供稳定的电力供应、优化高密度的部署&#xff0c;到数据安全的隐私保护&…...

Connection --- 连接管理模块

目录 模块设计 模块实现 shared_from_this 模块测试纠错 模块设计 Connection模块是对通信连接也就是通信套接字的整体的管理模块&#xff0c;对连接的所有操作都是通过这个模块提供的接口来完成的。 那么他具体要进行哪些方面的管理呢&#xff1f; 首先每个通信连接都需…...

iconfont图标放置在某个元素的最右边

在网页设计中&#xff0c;如果你想要将iconfont图标放置在某个元素的最右边&#xff0c;你可以通过CSS来实现这个布局。以下是一些基本的CSS代码示例&#xff0c;它们可以帮助你根据不同的布局需求将图标放置在最右边&#xff1a; 内联元素&#xff08;如<span>&#xff…...

Android10 recent键相关总结

目录 初始化流程 点击Recent键流程 RecentsActivity 显示流程 RecentsModel 获取数据管理类 RecentsActivity 布局 已处于Recent界面时 点击recent 空白区域 点击返回键 recent组件配置 Android10 Recent 功能由 System UI&#xff0c;Launcher共同实现。 初始化流程 …...

QMC5883L的驱动

简介 本篇文章的代码已经上传到了github上面&#xff0c;开源代码 作为一个电子罗盘模块&#xff0c;我们可以通过I2C从中获取偏航角yaw&#xff0c;相对于六轴陀螺仪的yaw&#xff0c;qmc5883l几乎不会零飘并且成本较低。 参考资料 QMC5883L磁场传感器驱动 QMC5883L磁力计…...

YSYX学习记录(八)

C语言&#xff0c;练习0&#xff1a; 先创建一个文件夹&#xff0c;我用的是物理机&#xff1a; 安装build-essential 练习1&#xff1a; 我注释掉了 #include <stdio.h> 出现下面错误 在你的文本编辑器中打开ex1文件&#xff0c;随机修改或删除一部分&#xff0c;之后…...

Leetcode 3577. Count the Number of Computer Unlocking Permutations

Leetcode 3577. Count the Number of Computer Unlocking Permutations 1. 解题思路2. 代码实现 题目链接&#xff1a;3577. Count the Number of Computer Unlocking Permutations 1. 解题思路 这一题其实就是一个脑筋急转弯&#xff0c;要想要能够将所有的电脑解锁&#x…...

1.3 VSCode安装与环境配置

进入网址Visual Studio Code - Code Editing. Redefined下载.deb文件&#xff0c;然后打开终端&#xff0c;进入下载文件夹&#xff0c;键入命令 sudo dpkg -i code_1.100.3-1748872405_amd64.deb 在终端键入命令code即启动vscode 需要安装插件列表 1.Chinese简化 2.ros …...

C++ Visual Studio 2017厂商给的源码没有.sln文件 易兆微芯片下载工具加开机动画下载。

1.先用Visual Studio 2017打开Yichip YC31xx loader.vcxproj&#xff0c;再用Visual Studio 2022打开。再保侟就有.sln文件了。 易兆微芯片下载工具加开机动画下载 ExtraDownloadFile1Info.\logo.bin|0|0|10D2000|0 MFC应用兼容CMD 在BOOL CYichipYC31xxloaderDlg::OnIni…...

python执行测试用例,allure报乱码且未成功生成报告

allure执行测试用例时显示乱码&#xff1a;‘allure’ &#xfffd;&#xfffd;&#xfffd;&#xfffd;&#xfffd;ڲ&#xfffd;&#xfffd;&#xfffd;&#xfffd;ⲿ&#xfffd;&#xfffd;&#xfffd;Ҳ&#xfffd;&#xfffd;&#xfffd;ǿ&#xfffd;&am…...

力扣-35.搜索插入位置

题目描述 给定一个排序数组和一个目标值&#xff0c;在数组中找到目标值&#xff0c;并返回其索引。如果目标值不存在于数组中&#xff0c;返回它将会被按顺序插入的位置。 请必须使用时间复杂度为 O(log n) 的算法。 class Solution {public int searchInsert(int[] nums, …...

人机融合智能 | “人智交互”跨学科新领域

本文系统地提出基于“以人为中心AI(HCAI)”理念的人-人工智能交互(人智交互)这一跨学科新领域及框架,定义人智交互领域的理念、基本理论和关键问题、方法、开发流程和参与团队等,阐述提出人智交互新领域的意义。然后,提出人智交互研究的三种新范式取向以及它们的意义。最后,总结…...

NPOI Excel用OLE对象的形式插入文件附件以及插入图片

static void Main(string[] args) {XlsWithObjData();Console.WriteLine("输出完成"); }static void XlsWithObjData() {// 创建工作簿和单元格,只有HSSFWorkbook,XSSFWorkbook不可以HSSFWorkbook workbook new HSSFWorkbook();HSSFSheet sheet (HSSFSheet)workboo…...

【Linux】自动化构建-Make/Makefile

前言 上文我们讲到了Linux中的编译器gcc/g 【Linux】编译器gcc/g及其库的详细介绍-CSDN博客 本来我们将一个对于编译来说很重要的工具&#xff1a;make/makfile 1.背景 在一个工程中源文件不计其数&#xff0c;其按类型、功能、模块分别放在若干个目录中&#xff0c;mak…...