SQL实战测试
SQL实战测试
(请写下 SQL 查询语句,不需要展示结果)
表 a
| Date | Sales | Customer | Revenue |
|---|---|---|---|
| 2019/1/1 | 张三 | A | 10 |
| 2019/1/5 | 张三 | A | 18 |
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
| Customer | Customer_id | Sexual |
|---|---|---|
| A | 00001 | 男 |
| B | 00002 | 男 |
| C | 00003 | 女 |
| D | 00004 | 男 |
| E | 00005 | 女 |
| F | 00006 | 女 |
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实战测试 (请写下 SQL 查询语句,不需要展示结果) 表 a DateSalesCustomerRevenue2019/1/1张三A102019/1/5张三A18 1. **用一条 ** SQL 语句写出每个月,每个销售有多少个客户收入多少 输出结果表头为“月”,“销…...
Java 基础教学:基础语法-变量与常量
变量 变量是程序设计中的基本概念,它用于存储信息,这些信息可以在程序执行过程中被读取和修改。 变量的声明 在Java中,声明变量需要指定变量的数据类型以及变量的名称。数据类型定义了变量可以存储的数据种类(例如整数、浮点数…...
vue3使用element-plus手动更改url后is-active和菜单的focus颜色不同步问题
在实习,给了个需求做个新的ui界面,遇到了一个非常烦人的问题 如下,手动修改url时,is-active和focus颜色不同步 虽然可以直接让el-menu-item:focus为白色能解决这个问题,但是我就是想要有颜色哈哈哈,有些执…...
每天五分钟深度学习框架pytorch:从底层实现一元线性回归模型
本文重点 本节课程我们继续搭建一元线性回归模型,不同的是这里我们不使用pytorch框架已经封装好的一些东西,我们做这个目的是为了更加清楚的看到pytorch搭建模型的本质,为了更好的理解,当然实际中我们还是使用pytorch封装好的一些东西,不要重复造轮子。 模型搭建 #定义…...
编辑器加载与AB包加载组合
解释: 这个 ABResMgr 类是一个资源加载管理器,它用于整合 AB包(Asset Bundle)资源加载和 编辑器模式资源加载。通过这个管理器,可以根据开发环境选择资源加载方式,既支持 运行时使用Asset Bundle加载&…...
【c++】vector中的back()函数
nums.back() 是 C 中 std::vector 类的一个成员函数,用于获取数组(向量)中的最后一个元素。以下是一些关于 nums.back() 的详细解释和示例使用: 1. 功能 nums.back() 返回数组 nums 中的最后一个元素。如果数组为空,…...
[分享] SQL在线编辑工具(好用)
在线SQL编写工具(无广告) - 在线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…...
自动驾驶系列—激光雷达点云数据在自动驾驶场景中的深度应用
🌟🌟 欢迎来到我的技术小筑,一个专为技术探索者打造的交流空间。在这里,我们不仅分享代码的智慧,还探讨技术的深度与广度。无论您是资深开发者还是技术新手,这里都有一片属于您的天空。让我们在知识的海洋中…...
C#删除dataGridView 选中行
关键在于:从最后一行开始删除。 从前往后删只能删除其中一半,我理解是再remove行的时候dataGridView内部行序列发生了变化,包含在选中行中的特定行会被忽略,从后往前删就可避免这个问题,最后一行的行号影响不到前面的…...
K8S调度不平衡问题分析过程和解决方案
不平衡问题排查 问题描述: 1、业务部署大量pod(据反馈,基本为任务型进程)过程中,k8s node内存使用率表现不均衡,范围从80%到百分之几; 2、单个node内存使用率超过95%,仍未发生pod驱逐,存在node…...
Python中类、继承和方法重写的使用
😀前言 本篇博文将介绍如何定义类、创建类的实例、访问类的成员、使用属性、实现继承及方法重写,希望你能够喜欢 🏠个人主页:晨犀主页 🧑个人简介:大家好,我是晨犀,希望我的文章可以…...
【Neo4j】- 轻松入门图数据库
文章目录 前言-场景一、Neo4j概述二、软件安装部署1.软件下载2.软件部署3.软件使用4.语法学习 总结 前言-场景 这里用大家都了解的关系数据与图数据据库对比着说,更加方便大家理解图数据库的作用 图形数据库和关系数据库均存储信息并表示数据之间的关系。但是,关系…...
LeetCode 206 - 反转链表
解题思路 我们可以使用迭代的方法来实现链表的反转,这里我们先介绍迭代的方法。迭代的思路是:从头节点开始,依次将节点的next指针进行反转,使得当前节点的next指向其前一个节点,然后依次向后移动指针,直至…...
AI生成大片,Movie Gen 可以生成长视频并配上完美的音效,带给观众更好的观看体验。
之前的文章中已经给大家介绍了一些关于长视频生成相关的技术,AI生成大片已经越来越近了。感兴趣的小伙伴可以点击下面链接阅读~ Movie Gen 的工作原理可以简单理解为两个主要部分:一个是生成视频的模型,另一个是生成音频的模型。首先&#x…...
Flink on yarn模式下,JobManager异常退出问题
这个问题排除了很久,其中更换了Flink版本,也更换了Hadoop版本一直无法解决,JobManager跑着跑着就异常退出了。资源管理器上是提示运行结束,运行状态是被Kill掉。 网上搜了一圈,都说内存不足、资源不足,配置…...
面对AI算力需求激增,如何守护数据中心机房安全?
随着人工智能(AI)技术飞速发展,AI算力需求呈现爆发式增长,导致对数据设备电力的需求指数级攀升。这给数据中心带来前所未有的挑战和机遇,从提供稳定的电力供应、优化高密度的部署,到数据安全的隐私保护&…...
Connection --- 连接管理模块
目录 模块设计 模块实现 shared_from_this 模块测试纠错 模块设计 Connection模块是对通信连接也就是通信套接字的整体的管理模块,对连接的所有操作都是通过这个模块提供的接口来完成的。 那么他具体要进行哪些方面的管理呢? 首先每个通信连接都需…...
iconfont图标放置在某个元素的最右边
在网页设计中,如果你想要将iconfont图标放置在某个元素的最右边,你可以通过CSS来实现这个布局。以下是一些基本的CSS代码示例,它们可以帮助你根据不同的布局需求将图标放置在最右边: 内联元素(如<span>ÿ…...
Android10 recent键相关总结
目录 初始化流程 点击Recent键流程 RecentsActivity 显示流程 RecentsModel 获取数据管理类 RecentsActivity 布局 已处于Recent界面时 点击recent 空白区域 点击返回键 recent组件配置 Android10 Recent 功能由 System UI,Launcher共同实现。 初始化流程 …...
云原生核心技术 (7/12): K8s 核心概念白话解读(上):Pod 和 Deployment 究竟是什么?
大家好,欢迎来到《云原生核心技术》系列的第七篇! 在上一篇,我们成功地使用 Minikube 或 kind 在自己的电脑上搭建起了一个迷你但功能完备的 Kubernetes 集群。现在,我们就像一个拥有了一块崭新数字土地的农场主,是时…...
mongodb源码分析session执行handleRequest命令find过程
mongo/transport/service_state_machine.cpp已经分析startSession创建ASIOSession过程,并且验证connection是否超过限制ASIOSession和connection是循环接受客户端命令,把数据流转换成Message,状态转变流程是:State::Created 》 St…...
django filter 统计数量 按属性去重
在Django中,如果你想要根据某个属性对查询集进行去重并统计数量,你可以使用values()方法配合annotate()方法来实现。这里有两种常见的方法来完成这个需求: 方法1:使用annotate()和Count 假设你有一个模型Item,并且你想…...
Java - Mysql数据类型对应
Mysql数据类型java数据类型备注整型INT/INTEGERint / java.lang.Integer–BIGINTlong/java.lang.Long–––浮点型FLOATfloat/java.lang.FloatDOUBLEdouble/java.lang.Double–DECIMAL/NUMERICjava.math.BigDecimal字符串型CHARjava.lang.String固定长度字符串VARCHARjava.lang…...
Python爬虫(二):爬虫完整流程
爬虫完整流程详解(7大核心步骤实战技巧) 一、爬虫完整工作流程 以下是爬虫开发的完整流程,我将结合具体技术点和实战经验展开说明: 1. 目标分析与前期准备 网站技术分析: 使用浏览器开发者工具(F12&…...
高危文件识别的常用算法:原理、应用与企业场景
高危文件识别的常用算法:原理、应用与企业场景 高危文件识别旨在检测可能导致安全威胁的文件,如包含恶意代码、敏感数据或欺诈内容的文档,在企业协同办公环境中(如Teams、Google Workspace)尤为重要。结合大模型技术&…...
ardupilot 开发环境eclipse 中import 缺少C++
目录 文章目录 目录摘要1.修复过程摘要 本节主要解决ardupilot 开发环境eclipse 中import 缺少C++,无法导入ardupilot代码,会引起查看不方便的问题。如下图所示 1.修复过程 0.安装ubuntu 软件中自带的eclipse 1.打开eclipse—Help—install new software 2.在 Work with中…...
JDK 17 新特性
#JDK 17 新特性 /**************** 文本块 *****************/ python/scala中早就支持,不稀奇 String json “”" { “name”: “Java”, “version”: 17 } “”"; /**************** Switch 语句 -> 表达式 *****************/ 挺好的ÿ…...
全面解析各类VPN技术:GRE、IPsec、L2TP、SSL与MPLS VPN对比
目录 引言 VPN技术概述 GRE VPN 3.1 GRE封装结构 3.2 GRE的应用场景 GRE over IPsec 4.1 GRE over IPsec封装结构 4.2 为什么使用GRE over IPsec? IPsec VPN 5.1 IPsec传输模式(Transport Mode) 5.2 IPsec隧道模式(Tunne…...
Web 架构之 CDN 加速原理与落地实践
文章目录 一、思维导图二、正文内容(一)CDN 基础概念1. 定义2. 组成部分 (二)CDN 加速原理1. 请求路由2. 内容缓存3. 内容更新 (三)CDN 落地实践1. 选择 CDN 服务商2. 配置 CDN3. 集成到 Web 架构 …...
