1.创建示例数据

CREATE TABLE department_table (
company_code VARCHAR(10) COMMENT '公司编码',
company_name VARCHAR(50) COMMENT '公司名称',
department_code VARCHAR(10) COMMENT '部门编码',
department_name VARCHAR(50) COMMENT '部门名称',
sales DECIMAL(10, 2) COMMENT '销售额'
); CREATE TABLE company_profit_table (
company_code VARCHAR(10) COMMENT '公司编码',
company_name VARCHAR(50) COMMENT '公司名称',
profit DECIMAL(10, 2) COMMENT '公司利润'
); INSERT INTO department_table (company_code, company_name, department_code, department_name, sales) VALUES
('C001', 'Company A', 'D001', 'Dept A1', 1000.00),
('C001', 'Company A', 'D002', 'Dept A2', 2000.00),
('C002', 'Company B', 'D003', 'Dept B1', 3000.00),
('C002', 'Company B', 'D004', 'Dept B2', 4000.00),
('C003', 'Company C', 'D005', 'Dept C1', 5000.00); INSERT INTO company_profit_table (company_code, company_name, profit) VALUES
('C001', 'Company A', 10000.00),
('C002', 'Company B', 20000.00),
('C003', 'Company C', 30000.00);

2.示例sql

WITH aggregated_profit AS (
SELECT company_code, company_name, profit
FROM company_profit_table
),
department_with_profit AS (
SELECT d.company_code, d.company_name, d.department_code, d.department_name, d.sales, a.profit
FROM department_table d
LEFT JOIN aggregated_profit a ON d.company_code = a.company_code
),
ranked_departments AS (
SELECT *,
ROW_NUMBER() OVER (PARTITION BY company_code ORDER BY sales DESC) AS sales_rank
FROM department_with_profit
)
SELECT company_code, company_name, department_code, department_name, sales,
CASE
WHEN sales_rank = 1 THEN profit
ELSE NULL
END AS profit
FROM ranked_departments;

欢迎大佬指正,更优的方式。

mysql将公司数据随机挂在部门身上的更多相关文章

  1. 如何实现MySQL表数据随机读取?从mysql表中读取随机数据

    文章转自 http://blog.efbase.org/2006/10/16/244/如何实现MySQL表数据随机读取?从mysql表中读取随机数据?以前在群里讨论过这个问题,比较的有意思.mysql ...

  2. MySQL查询关键数据方法

    MySQL查询关键数据方法 操作表的SQL语句补充 1.修改表名 alter table 表名 reame 新表名: 2.新增字段名 alter table 表名 add 字段名 字段类型(数字) 约 ...

  3. Oracle、MySql、SQLServer数据分页查询

    看过此博文后Oracle.MySql.SQLServer 数据分页查询,在根据公司的RegionRes表格做出了 SQLserver的分页查询语句: 别名.字段 FROM( SELECT row_nu ...

  4. [转] MySql 优化 大数据优化

    一.我们可以且应该优化什么? 硬件 操作系统/软件库 SQL服务器(设置和查询) 应用编程接口(API) 应用程序 ------------------------------------------ ...

  5. MySQL学习3 - 数据表的操作

    本节掌握 一.存储引擎(了解) 二.mysql支持的存储引擎 1.InnoDB 存储引擎 2.MyISAM 存储引擎 3.NDB 存储引擎 4.Memory 存储引擎 5.Infobright 存储引 ...

  6. MySQL binlog2sql-闪回数据

    binlog2sql 从MySQL binlog解析出你要的SQL.根据不同选项,你可以得到原始SQL.回滚SQL.去除主键的INSERT SQL等. 用途 数据快速回滚(闪回) 主从切换后新mast ...

  7. Visual Studio 2017 - Windows应用程序打包成exe文件(2)- Advanced Installer 关于Newtonsoft.Json,LINQ to JSON的一个小demo mysql循环插入数据、生成随机数及CONCAT函数 .NET记录-获取外网IP以及判断该IP是属于网通还是电信 Guid的生成和数据修整(去除空格和小写字符)

    Visual Studio 2017 - Windows应用程序打包成exe文件(2)- Advanced Installer   Advanced Installer :Free for 30 da ...

  8. hadoop项目实战--ETL--(二)实现自动向mysql中添加数据

    四 项目开发 1 创建数据库db_etl,新建两张表user 和oder.表结构如第一部分图所示. 2 编写python脚本,实现自动向mysql中插入数据. 新建python 项目,目录结构如下图 ...

  9. php MySQL使用rand函数随机取记录(转)

    php MySQL使用rand函数随机取记录 如何在mysql中使用随机数, 如何写一个语句能一下更新几百条MYSQL数据! 需要测试MYSQL数据库,里面有一个上万条数据的数据库,如何写一个PHP文 ...

  10. MySQL对数据库数据进行复制的基本过程详解

    MySQL对数据库数据进行复制的基本过程详解 这篇文章主要介绍了MySQL对数据库数据进行复制的基本过程,解读了Slave的一些相关配置,需要的朋友可以参考下 复制 复制是从一个MySQL服务器(ma ...

随机推荐

  1. 暑假集训CSP提高模拟2

    A.活动投票 主元素问题,用摩尔投票 #include<bits/stdc++.h> using namespace std; int n,a=-1,acnt,x; int main(){ ...

  2. ftrace options 中的irq-info

    /sys/kernel/debug/tracing/options/irq_info 是 ftrace 中的一个选项,用于启用或禁用有关中断的详细信息的跟踪. options/irq_info 的具体 ...

  3. abc292[AtCoder Beginner Contest 292] 题解

    写点题目转换下心情吧 A-CAPS LOCK 大水题 B-Yellow and Red Card 大水题 C-Four Variables 给定一个数\(N\),问有多少个有序正数数组\((A,B,C ...

  4. dotnet 的LINQ使用

    // LINQ (Language Integrated Qyery) 语言集成查询 -- 用来查询的一些操作类库 // 1. LINQ to Objects 主要负责对象的查询 // 2. LINQ ...

  5. Spring 实现 3 种异步流式接口,干掉接口超时烦恼

    大家好,我是小富- 如何处理比较耗时的接口? 这题我熟,直接上异步接口,使用 Callable.WebAsyncTask 和 DeferredResult.CompletableFuture等均可实现 ...

  6. 神经网络之卷积篇:详解残差网络为什么有用?(Why ResNets work?)

    详解残差网络为什么有用? 为什么ResNets能有如此好的表现,来看个例子,它解释了其中的原因,至少可以说明,如何构建更深层次的ResNets网络的同时还不降低它们在训练集上的效率.通常来讲,网络在训 ...

  7. 云原生周刊:CNCF 宣布 KubeEdge 毕业

    云原生周刊:CNCF 宣布 KubeEdge 毕业 开源项目推荐 Watchtower Watchtower 这个项目能够自动监测并更新正在运行的 Docker 容器.它会定期检查并拉取 Docker ...

  8. VScode如何设置浅色侧栏

    原文地址:https://blog.csdn.net/KaiSarH/article/details/113241334 vscode主题设置成了浅色,但是侧边栏仍然是灰色,非常讨厌. 在设置中对&q ...

  9. c++时间管理大师

    作者花了一个下午写出来的. c++写的时间管理大师. 支持一下. #include<bits/stdc++.h> #include<windows.h> using names ...

  10. 一文搞懂 ARM 64 系列: ADD(立即数版)

    汇编中,加法指令很重要,因为它是执行其他很多指令的基础. 同时,加法指令也会影响NZCV标志.有关NZCV的介绍,可以参看<一文搞懂 ARM 64 系列: ADC>. ARM64汇编中,A ...