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

Excel+SQL实战项目 - 餐饮业日销售情况分析仪

目录

    • 1、要完成的任务
    • 2、认识数据
    • 3、SQL数据加工
    • 4、excel形成分析仪

1、要完成的任务

目标:结合SQL和excel实现餐饮业日销售情况分析仪,如下表:
在这里插入图片描述
认识分析仪:
切片器:店面
分为四部分:KPI 、组合图、饼图、数据透视表
KPI指标:

  1. 当天销售情况
  2. 当天桌子使用情况
  3. 当天每把椅子的使用情况

在这里插入图片描述

组合图:每小时的销售额与销量变化趋势
饼图:不同菜品下的销售额占比情况,销量占比情况
数据透视表:不同菜品下的销售额情况,销量情况

2、认识数据

表结构信息:
在这里插入图片描述
bill表中缺失金额,order表缺失店名信息 —bill表与order表连接一下可以解决
在这里插入图片描述
反映不同店的桌子信息:
shop表要补充总座位表
在这里插入图片描述

3、SQL数据加工

  1. 用orderdetail表创建单汇总金额表(OrderGroup)–计算每单号的总金额
    以orderdetail表的billnumber单号字段为汇总依据,求出每条billnumber下pay的加总值。
    新表字段:billnumber(单号)、pay(金额)

  2. 用Bill表与OrderGroup表创建新单号详细表(NewBill)–newbill = bill+每单总金额+每单折扣后金额
    以billnumber为关键字段关联两表,将OrderGroup表中的pay字段合并到Bill表中,并使用pay与billdiscount字段计算出折扣金额。
    新表字段:所有Bill表中的字段、pay(金额)、rebate(折扣金额)
    计算逻辑:Rebate = pay * billdiscount

  3. 用Shopdetail表创建新店面情况表(NewShopDetail)–添加每家店的总座位数
    在原有shopdetail表字段基础上计算并添加allseats字段
    新表字段:所有ShopDetail表中的字段、allseats(总座位数)
    计算逻辑:allseats = twotable * 2 + three * 3 + fourtable * 6

  4. 用OrderDetail表与Bill表创建新点菜明细表(NewOrderDetail)–给order表增加店名信息
    以billnumber为关键字段关联两表,并用Bill表中的shopname与OrderDetail表中的所有字段组成新表
    新表字段:shopname(店名)、OrderDetail表中的所有字段

  5. 用NewBill表与NewShopDetail表创建店汇总信息表(ShopTotal)
    以shopname字段为关键字段关联两表,并以shopname字段为汇总条件,创建以下字段
    新表字段:
    店名: b.shopname
    单数: b.billnumber的计数
    人数: b.peoplecount的加总
    折扣总金额: b.rebate的加总
    店汇总金额: b.pay的加总
    单均消费: b.pay的合计值/b.billnumber的计数值
    人均消费: b.pay的合计值/b.peoplecount的合计值
    总台数: s.alltable
    总座位数: s.allseats
    翻台率: b.billnumber的计数值/s.alltable (总单数/总桌数)
    上座率: b.peoplecount的合计值/s.allseats
    折扣率: b.rebate的合计值/b.pay的合计值

导入bill表:

create database CateringCase;use CateringCase;--  Bill table
create table Bill(billdate date not null,billnumber varchar(20) not null default '-',shopname varchar(20) not null default '-',    billdiscount float not null default 0,paytime time not null,tablenumber int not null default 0,peoplecount int not null default 0
);#导入数据
load data local infile 'D:/liwork/data/-bill.csv' into table Billfields terminated by ',';select * from Bill;

导入OrderDetail表:

--  OrderDetail table
create table OrderDetail(billnumber varchar(20) not null default '-',detail varchar(20) not null default '-',pay int not null default 0
);#导入数据
load data local infile 'D:/liwork/data/-order.csv' into table OrderDetailfields terminated by ',';select * from OrderDetail;

导入ShopDetail表:

--  ShopDetail table
create table ShopDetail(ShopName varchar(20) not null default '-',twotable int not null default 0,threetable int not null default 0,fourtable int not null default 0,alltable int not null default 0
);#导入数据
load data local infile 'D:/liwork/data/-shop.csv' into table ShopDetailfields terminated by ',';select * from ShopDetail;

数据加工:

-- 数据加工
-- 创建单汇总金额表
Create table OrderGroup(select billnumber, sum(pay) as pay from OrderDetailgroup by billnumber
);select * from OrderGroup;-- 创建新单号详细表
Create table NewBill(
select b.*,o.pay,b.billdiscount * o.pay as rebate from bill as b left join ordergroup as o 
on b.billnumber = o.billnumber);select * from NewBill;

NewBill表:
在这里插入图片描述


-- 创建新店面情况表
create table NewShopDetail(
select *, (twotable * 2 + threetable * 3 + fourtable * 6) as allseats 
from shopdetail as s);select * from NewShopDetail;

NewShopDetail表:
在这里插入图片描述

-- 创建新点菜明细表
create table neworderdetail(
select b.shopname,o.* from orderdetail as o left join bill as b 
on o.billnumber = b.billnumber
);select * from neworderdetail;

neworderdetail表:
在这里插入图片描述


-- 创建店汇总信息表
create table ShopTotal(
select b.shopname as 店名, count(b.billnumber) as 单数, 
sum(b.peoplecount) as 人数,sum(b.rebate) as 折扣总金额,sum(b.pay) as 店汇总金额, 
sum(b.pay)/count(b.billnumber) as 单均消费, 
sum(b.pay)/sum(b.peoplecount) as 人均消费, 
s.alltable as 总台数,
s.allseats as 总座位数,
count(b.billnumber)/s.alltable as 翻台率,
sum(b.peoplecount)/s.allseats as 上座率,
sum(b.rebate)/sum(b.pay) as 折扣率
from newbill as b left join newshopdetail as s 
on b.shopname = s.shopname
group by b.shopname);select * from shoptotal;

shoptotal表:
在这里插入图片描述

4、excel形成分析仪

从excel中连接MySQL,导入数据后做数据透视图,不断调整

相关文章:

Excel+SQL实战项目 - 餐饮业日销售情况分析仪

目录1、要完成的任务2、认识数据3、SQL数据加工4、excel形成分析仪1、要完成的任务 目标:结合SQL和excel实现餐饮业日销售情况分析仪,如下表: 认识分析仪: 切片器:店面 分为四部分:KPI 、组合图、饼图、数…...

电商导购CPS,京东联盟如何跟单实现用户和订单绑定

前言 大家好,我是小悟 做过自媒体的小伙伴都知道,不管是发图文还是发短视频,直播也好,可以带货。在你的内容里面挂上商品,你自己都不需要囤货,如果用户通过这个商品下单成交了,自媒体平台就会…...

Redis学习【6】之BitMap、HyperLogLog、Geospatial操作命令 (1)

文章目录前言BitMap 操作命令1.1 BitMap 简介1.2 setbit1.3 getbit1.4 bitcount1.5 bitpos[pos:position]1.6 bitop1.7 应用场景二 HyperLogLog 操作命令2.1 HyperLogLog 简介2.2 pfadd2.3 pfcount2.4 pfmerge2.5 应用场景三 Geospatial【地理空间】操作命令3. 1 Geospatial 简…...

JAVA实现心跳检测【长连接】

文章目录1、心跳机制简介2、心跳机制实现方式3、客户端4 、服务端5、代码实现5.1 KeepAlive.java5.2 MyClient.java5.3 MyServer5.4 测试结果1、心跳机制简介 在分布式系统中,分布在不同主机上的节点需要检测其他节点的状态,如服务器节点需要检测从节点…...

python3.9安装和pandas安装踩坑处理

0、先决条件:系统内最好先安装有gcc、libffi-devel等 1、安装包下载 https://www.python.org/downloads/source/ 2、解压安装包并上传到/usr/local/python3.9 3、打开shell cd /usr/local/python3.9要先把python3.9的所有文件复制到/usr/local/python3.9才会成功…...

2023.2.15每日一题——867. 转置矩阵

每日一题题目描述解题核心解法一:二维表示 模拟解法二:一维表示 模拟题目描述 题目链接:867. 转置矩阵 给你一个二维整数数组 matrix, 返回 matrix 的 转置矩阵 。 矩阵的 转置 是指将矩阵的主对角线翻转,交换矩阵…...

【人脸识别】Partial-FC:让你在一台机器上训练1000万个id人脸数据集成为可能!

论文题目:”Killing Two Birds with One Stone: Efficient and Robust Training of Face Recognition CNNs by Partial FC“ -CVPR 2022 代码地址:https://arxiv.org/pdf/2203.15565.pdf 代码地址:https://github.com/deepinsight/insightfac…...

递归方法读取任意深度的 JSON 对象的键值

有以下json字符串 {"name":"John","age":30,"address":{"city":"New York","state":"NY","zip":"10001","coordinates":{"latitude":40.712776,&q…...

黑马redis学习记录:分布式锁

一、基本原理和实现方式对比 分布式锁:满足分布式系统或集群模式下多进程可见并且互斥的锁。 分布式锁的核心思想就是让大家都使用同一把锁,只要大家使用的是同一把锁,那么我们就能锁住线程,不让线程进行,让程序串行…...

对React-Fiber的理解,它解决了什么问题?

对React-Fiber的理解,它解决了什么问题?Fiber用来解决什么问题?Fiber是什么?Fiber是如何解决问题的?Fiber用来解决什么问题? JavaScript引擎和页面渲染引擎两个线程是互斥的,当其中一个线程执行…...

【Linux】初学Linux你需要掌握这些基本指令(二)

目录 1.man指令 2.cp指令 3.mv指令 4.tree指令 5.echo指令 6.more指令 7.less指令(重要) 8.head与tail指令 9.date指令 显示时间常用参数: 设置时间常用参数: 10.cal指令 11.find & whereis & which指令 …...

Linux中VI/VIM 编辑器

1、概述所有Linux系统都会内置vi文本编辑器vim是vi的升级版,可以主动以字体颜色分辨语法的正确性,代码补完和编译,错误跳转等功能。2、vi和vim的三种模式基本上 vi/vim 共分为三种模式,分别是一般模式、编辑模式、命令模式2.1、一…...

PDF怎么转换成Word?两种PDF免费转Word方法推荐

不知道你们有没有发现,我们在网上下载的很多资料都是PDF格式的,尽管PDF文件也可以通过专门的PDF编辑器来编辑,但是PDF文档作为版式文档,编辑起来还是存在很多局限性,所有当我们需要大量编辑修改文档的时候,…...

极兔一面:Dockerfile如何优化?注意:千万不要只说减少层数

说在前面 在40岁老架构师 尼恩的读者交流群(50)中,面试题是一个非常、非常高频的交流话题。 最近,有小伙伴面试极兔时,遇到一个面试题: 如果优化 Dockerfile? 小伙伴没有回答好,只是提到了减少镜像层数。…...

SpringBoot+Vue实现酒店客房管理系统

文末获取源码 开发语言:Java 框架:springboot JDK版本:JDK1.8 服务器:tomcat7 数据库:mysql 5.7/8.0 数据库工具:Navicat11 开发软件:eclipse/myeclipse/idea Maven包:Maven3.3.9 浏…...

自适应多因素认证:构建不可破解的企业安全防线|身份云研究院

打开本文意味着你理解信息安全的重要性,并且希望获取行业最佳实践来保护你所在组织的信息安全。本文将带你了解多因素认证(MFA:Multi-Factor-Authentication)对于企业信息安全的重要性以及实施方法。 多因素认证(MFA&…...

阶段二8_集合ArrayList_学生管理系统_详细步骤

一.学生管理系统案例 1.需求: 针对目前我们的所学内容,完成一个综合案例:学生管理系统! 该系统主要功能如下: 1.添加学生:通过键盘录入学生信息,添加到集合中 2.删除学生:通过键盘录…...

一篇解决Linux 中的负载高低和 CPU 开销并不完全对应

负载是查看 Linux 服务器运行状态时很常用的一个性能指标。在观察线上服务器运行状况的时候,我们也是经常把负载找出来看一看。在线上请求压力过大的时候,经常是也伴随着负载的飙高。 但是负载的原理你真的理解了吗?我来列举几个问题&#x…...

关于IDM下载器,提示:一个假冒的序列号被用来注册……idea项目文件路径报红

关于IDM下载器,提示:一个假冒的序列号被用来注册……到C:\Windows\System32\drivers\etc 修改目录下面的hosts文件(如果没有修改的权限就右键属性hosts文件修改user的权限为完全控制),在hosts里面增加以下内容&#xf…...

JVM - 高效并发

目录 Java内存模型和内存间的交互操作 Java内存模型 内存间的交互操作 内存间交互操作的规则 volatile特性 多线程中的可见性 volatile 指令重排原理和规则 指令重排 指令重排的基本规则 多线程中的有序性 线程安全处理 锁优化 锁优化之自旋锁与自适应自旋 锁优…...

中小学智慧校园电子班牌系统源码 Saas云平台模式

智慧电子班牌区别于传统电子班牌,智慧校园电子班牌系统更加注重老师和学生的沟通交流和及时数据交互。学校为每个教室配置一台智能电子班牌,一般安装于教室门口,用来实时显示学校通知、班级通知,可设置集中分布式管理,…...

记录一次服务器被攻击的经历

突然收到阿里云发过来的异常登陆的信息: 于是,急忙打开电脑查看对应的ECS服务器的记录: 发现服务器的cpu占用率异常飙升,所以可以大概断定服务器已经被非法入侵了。 通过自己的账号登陆后,发现sshd服务有异常的链接存…...

Python解题 - CSDN周赛第29期 - 争抢糖豆

本期问哥是志在必得,这本算法书我已经觊觎许久,而之前两次因为种种原因未能如愿。因此,问哥这几天花了不少时间,把所有之前在每日一练做过的题目重新梳理了一遍。苦心人,天不负,感谢官方大大! 第…...

C代码中访问链接脚本中的符号

一、目的在之前的《GNU LD脚本命令语言(一)》、《GNU LD脚本命令语言(二)》我们介绍了GNU链接脚本的知识点,基本上对链接脚本中的SECTION、REGION、以及加载地址与执行地址的关系等内容有了一定的了解。本篇主要讲解链…...

MySQL 8:MySQL索引

索引就是通过一定的算法建立数据模型,用于快速查找某一列中具有特定值的行。如果没有索引,MySQL 必须从第一条记录开始读取整个表,直到找到相关的表。表越大,查询数据所花费的时间就越多。如果表中查询的列有索引,MySQ…...

JVM详解

一,JVM 1,JVM区域划分 类装载器,运行时数据区,字节码执行引擎 2,JVM内存模型(运行时数据区) 由本地方法栈,虚拟机栈,堆,方法区,和程序计数器组成。…...

MySQL数据库调优————索引数据结构

B-TREE B-TREE数据结构 B-TREE特性 根节点的子结点个数2 < X < m&#xff0c;m是树的阶 假设m 3&#xff0c;则根节点可有2-3个孩子 中间节点的子节点个数m/2 < y < m 假设m 3&#xff0c;中间节点至少有2个孩子&#xff0c;最多3个孩子 每个中间节点包含n个关…...

visual studio 改变界面语言

在使用visual studio 2019 时&#xff0c;开始是英文界面&#xff0c;后面变成了中文界面。但是看视频教学时有的是英文界面&#xff0c;我就想回到英文界面&#xff0c;所以有切换界面语言的需要。其实操作很简单&#xff1a;工具-> 选项 打开界面在界面里选择环境&#xf…...

2023.2.16每日一题——1250. 检查「好数组」

每日一题题目描述解题核心解法一&#xff1a;数论题目描述 题目链接&#xff1a;1250. 检查「好数组」 给你一个正整数数组 nums&#xff0c;你需要从中任选一些子集&#xff0c;然后将子集中每一个数乘以一个 任意整数&#xff0c;并求出他们的和。 假如该和结果为 1&#x…...

亿级高并发电商项目-- 实战篇 --万达商城项目 八(安装FastDFS、安装Nginx、文件服务模块、文件上传功能、商品功能与秒杀商品等功能)

专栏&#xff1a;高并发---分布式项目 &#x1f44f;作者简介&#xff1a;大家好&#xff0c;我是小童&#xff0c;Java开发工程师&#xff0c;CSDN博客博主&#xff0c;Java领域新星创作者 &#x1f4d5;系列专栏&#xff1a;前端、Java、Java中间件大全、微信小程序、微信支…...

app 网站开发公司/长沙网动网络科技有限公司

为什么80%的码农都做不了架构师&#xff1f;>>> UICollectionViewController中有collectionView;而collectionView有UICollectionViewCell; 因此UITableViewController会有collectionView 和collectionViewCell&#xff0c;控制器默认已经遵守数据源和代理方法了&a…...

网站建设与维护费用/无锡网站优化

&#xff1f;《计算机科学导论》考试大纲一、考试大纲的性质《计算机科学导论》是报考农业工程与信息技术领域农业硕士同等学历的加试科目。为帮助考生明确考试复习范围和有关要求&#xff0c;特制定本考试大纲&#xff0c;该大纲适用于报考北京农学院农业硕士学位的考生。二、…...

什么是物联网/武汉关键词seo

计算机组装与维护期中试卷一、填空(每空1分&#xff0c;共20分)1.计算机系统由_软件系统_与___硬件系统_两大部分组成。2.安装CPU时涂抹硅脂的目的是为了更好地对CPU进行散热。3.最常见的主板BIOS主要有三大类型&#xff0c;即Award、AMI和 Phoenix三种。4.鼠标按其工作原理的不…...

贵阳优化网站建设/北京关键词优化服务

知识要点 在javascript中&#xff0c;表达式是短语&#xff0c;那么语句&#xff08;statement&#xff09;就是整句或命令。表达式计算出一个值&#xff0c;但语句用来执行以使某件事发生。 1.表达式语句 具有副作用的表达式是JavaScript中最简单的语句&#xff1a;赋值语句、…...

wordpress 结构分析/简述网站内容如何优化

前段时间参加了邀请的《仙风道》内测。一天挑了 25 个问题。下边是一周之后《仙风道》第二次邀请我的时候&#xff0c;我写给他们的信。我在游戏界一年多了&#xff0c;我不想越陷越深…… 《仙风道》确实需要改进。不过按照一般的游戏开发周期&#xff0c;现在这个阶段已经不方…...

邢台集团网站建设报价/如何做营销

题目&#xff1a;编写代码模拟三次密码输入的场景。 最多能输入三次密码&#xff0c;密码正确&#xff0c;提示“登录成功”,密码错误, 可以重新输入&#xff0c;最多输入三次。三次均错&#xff0c;则提示退出程序 public static void main(String[] args) {Scanner scannern…...