软件测试学习笔记丨SQL子查询实战练习

编程有点难不难 2024-08-24 14:33:11

本文转自测试人社区,原文链接:

一、项目介绍A 公司是一家软件产品销售公司,在北京,上海,深圳,成都,杭州都设有销售部门,其中销售部门分布如下:北京有 3 个销售部门,分别为 bj001,bj002,bj003上海有三个销售部门为:sh001,sh002,sh003深圳有两个销售部门为:sz001,sz002成都有一个销售部门为:cd001杭州有一个销售部门为:hz001department 表中记录了部门相关的信息sales_list 表中记录了最近 2 周各部门的销售订单相关数据二、项目需求需求 1:在 mysql 中创建数据库 hogwarts_db1 并导入相关数据需求 2:计算出各部门最近两周的的总销售业绩,并按业绩由高到低显示需求 3:查询出最近两周的销售额超过全公司平均销售额的部门三、实战步骤3.1 创建数据库并导入相关数据部门表字段dept_id 部门 idcity 所在城市manager 部门经理订单表dept_id 部门 idorder_id 订单号volume 客单价sales_date 销售日期3.2 计算销售业绩并排序# 计算出各部门最近两周的总业绩,并按业绩由高到低排名SELECT order_list.dept_id, city, manager, SUM( volume ) total_volumeFROM order_list INNER JOIN department ON order_list.dept_id = department.dept_idGROUP BY order_list.dept_idORDER BY SUM( volume ) DESC3.3 查询出最近两周销售额超平均销售额的部门WITH temp_dept AS ( SELECT order_list.dept_id, city, manager, SUM( volume ) total_volume FROM order_list INNER JOIN department ON order_list.dept_id = department.dept_id GROUP BY order_list.dept_id ORDER BY SUM( volume ) DESC ) SELECT *FROM temp_deptWHERE total_volume >( SELECT AVG( total_volume )FROM temp_dept)3.4 知识扩展-视图定义:视图是一种虚拟的表,它并不会在你的存储空间复制一份数据,而是对原有数据的一种引用。可以将视图理解为一种存储起来的 sql 语句视图可以简化多表查询视图也可以用于控制用户权限使用关键词 view 来创建视图语法:CREATE VIEW [视图名称] AS SELECT…3.5 使用视图简化练习CREATE VIEW temp_dept AS ( SELECT order_list.dept_id, city, manager, SUM( volume ) total_volume FROM order_list INNER JOIN department ON order_list.dept_id = department.dept_id GROUP BY order_list.dept_id ORDER BY SUM( volume ) DESC );SELECT *FROM temp_deptWHERE total_volume >( SELECT AVG( total_volume )FROM temp_dept);#查询出最近两周的冠军销售部门SELECT * FROM temp_dept WHERE total_volume=(SELECT max(total_volume) FROM temp_dept)

0 阅读:0

编程有点难不难

简介:感谢大家的关注