当前位置: 首页 > 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共同实现。 初始化流程 …...

conda相比python好处

Conda 作为 Python 的环境和包管理工具&#xff0c;相比原生 Python 生态&#xff08;如 pip 虚拟环境&#xff09;有许多独特优势&#xff0c;尤其在多项目管理、依赖处理和跨平台兼容性等方面表现更优。以下是 Conda 的核心好处&#xff1a; 一、一站式环境管理&#xff1a…...

【Python】 -- 趣味代码 - 小恐龙游戏

文章目录 文章目录 00 小恐龙游戏程序设计框架代码结构和功能游戏流程总结01 小恐龙游戏程序设计02 百度网盘地址00 小恐龙游戏程序设计框架 这段代码是一个基于 Pygame 的简易跑酷游戏的完整实现,玩家控制一个角色(龙)躲避障碍物(仙人掌和乌鸦)。以下是代码的详细介绍:…...

【杂谈】-递归进化:人工智能的自我改进与监管挑战

递归进化&#xff1a;人工智能的自我改进与监管挑战 文章目录 递归进化&#xff1a;人工智能的自我改进与监管挑战1、自我改进型人工智能的崛起2、人工智能如何挑战人类监管&#xff1f;3、确保人工智能受控的策略4、人类在人工智能发展中的角色5、平衡自主性与控制力6、总结与…...

React hook之useRef

React useRef 详解 useRef 是 React 提供的一个 Hook&#xff0c;用于在函数组件中创建可变的引用对象。它在 React 开发中有多种重要用途&#xff0c;下面我将全面详细地介绍它的特性和用法。 基本概念 1. 创建 ref const refContainer useRef(initialValue);initialValu…...

Oracle查询表空间大小

1 查询数据库中所有的表空间以及表空间所占空间的大小 SELECTtablespace_name,sum( bytes ) / 1024 / 1024 FROMdba_data_files GROUP BYtablespace_name; 2 Oracle查询表空间大小及每个表所占空间的大小 SELECTtablespace_name,file_id,file_name,round( bytes / ( 1024 …...

Auto-Coder使用GPT-4o完成:在用TabPFN这个模型构建一个预测未来3天涨跌的分类任务

通过akshare库&#xff0c;获取股票数据&#xff0c;并生成TabPFN这个模型 可以识别、处理的格式&#xff0c;写一个完整的预处理示例&#xff0c;并构建一个预测未来 3 天股价涨跌的分类任务 用TabPFN这个模型构建一个预测未来 3 天股价涨跌的分类任务&#xff0c;进行预测并输…...

【HTML-16】深入理解HTML中的块元素与行内元素

HTML元素根据其显示特性可以分为两大类&#xff1a;块元素(Block-level Elements)和行内元素(Inline Elements)。理解这两者的区别对于构建良好的网页布局至关重要。本文将全面解析这两种元素的特性、区别以及实际应用场景。 1. 块元素(Block-level Elements) 1.1 基本特性 …...

大学生职业发展与就业创业指导教学评价

这里是引用 作为软工2203/2204班的学生&#xff0c;我们非常感谢您在《大学生职业发展与就业创业指导》课程中的悉心教导。这门课程对我们即将面临实习和就业的工科学生来说至关重要&#xff0c;而您认真负责的教学态度&#xff0c;让课程的每一部分都充满了实用价值。 尤其让我…...

mysql已经安装,但是通过rpm -q 没有找mysql相关的已安装包

文章目录 现象&#xff1a;mysql已经安装&#xff0c;但是通过rpm -q 没有找mysql相关的已安装包遇到 rpm 命令找不到已经安装的 MySQL 包时&#xff0c;可能是因为以下几个原因&#xff1a;1.MySQL 不是通过 RPM 包安装的2.RPM 数据库损坏3.使用了不同的包名或路径4.使用其他包…...

什么是Ansible Jinja2

理解 Ansible Jinja2 模板 Ansible 是一款功能强大的开源自动化工具&#xff0c;可让您无缝地管理和配置系统。Ansible 的一大亮点是它使用 Jinja2 模板&#xff0c;允许您根据变量数据动态生成文件、配置设置和脚本。本文将向您介绍 Ansible 中的 Jinja2 模板&#xff0c;并通…...