【SQL】餐馆营业额七日均线数据

news2024/9/23 17:22:44

目录

题目

分析

代码


题目

表: Customer

+---------------+---------+
| Column Name   | Type    |
+---------------+---------+
| customer_id   | int     |
| name          | varchar |
| visited_on    | date    |
| amount        | int     |
+---------------+---------+
在 SQL 中,(customer_id, visited_on) 是该表的主键。
该表包含一家餐馆的顾客交易数据。
visited_on 表示 (customer_id) 的顾客在 visited_on 那天访问了餐馆。
amount 是一个顾客某一天的消费总额。

你是餐馆的老板,现在你想分析一下可能的营业额变化增长(每天至少有一位顾客)。

计算以 7 天(某日期 + 该日期前的 6 天)为一个时间段的顾客消费平均值。average_amount 要 保留两位小数。

结果按 visited_on 升序排序

返回结果格式的例子如下。

示例 1:

输入:
Customer 表:
+-------------+--------------+--------------+-------------+
| customer_id | name         | visited_on   | amount      |
+-------------+--------------+--------------+-------------+
| 1           | Jhon         | 2019-01-01   | 100         |
| 2           | Daniel       | 2019-01-02   | 110         |
| 3           | Jade         | 2019-01-03   | 120         |
| 4           | Khaled       | 2019-01-04   | 130         |
| 5           | Winston      | 2019-01-05   | 110         | 
| 6           | Elvis        | 2019-01-06   | 140         | 
| 7           | Anna         | 2019-01-07   | 150         |
| 8           | Maria        | 2019-01-08   | 80          |
| 9           | Jaze         | 2019-01-09   | 110         | 
| 1           | Jhon         | 2019-01-10   | 130         | 
| 3           | Jade         | 2019-01-10   | 150         | 
+-------------+--------------+--------------+-------------+
输出:
+--------------+--------------+----------------+
| visited_on   | amount       | average_amount |
+--------------+--------------+----------------+
| 2019-01-07   | 860          | 122.86         |
| 2019-01-08   | 840          | 120            |
| 2019-01-09   | 840          | 120            |
| 2019-01-10   | 1000         | 142.86         |
+--------------+--------------+----------------+
解释:
第一个七天消费平均值从 2019-01-01 到 2019-01-07 是restaurant-growth/restaurant-growth/ (100 + 110 + 120 + 130 + 110 + 140 + 150)/7 = 122.86
第二个七天消费平均值从 2019-01-02 到 2019-01-08 是 (110 + 120 + 130 + 110 + 140 + 150 + 80)/7 = 120
第三个七天消费平均值从 2019-01-03 到 2019-01-09 是 (120 + 130 + 110 + 140 + 150 + 80 + 110)/7 = 120
第四个七天消费平均值从 2019-01-04 到 2019-01-10 是 (130 + 110 + 140 + 150 + 80 + 110 + 130 + 150)/7 = 142.86

分析

Customer 表,包含顾客id、顾客姓名、消费时间、消费金额

单表复杂任务,考虑连接、子查询等方法

计算以 7 天(某日期 + 该日期前的 6 天)为一个时间段的顾客消费平均

考虑到同一天可能存在多条顾客消费记录,需要按照七日为一个时间段,先按照日期分组,

with t as 

(

select visited_on, sum(amount) amount

from Customer

group by visited_on

)

交叉连接

from t a, t b

通过datediff以七天为一个时间段

where datediff(a.visited_on,b.visited_on) between 0 and 6

group by a.visited_on

having count(*)=7

按照输出格式处理计算相关列

select 

a.visited_on,

sum(b.amount) amount,

round(sum(b.amount)/7,2) average_amount

average_amount 要 保留两位小数

通过round实现,round(sum(b.amount)/7,2) average_amount

结果按 visited_on 升序排列

考虑全面可添加order by,不过这里case原表即按 visited_on 升序排列,故也可以通过

代码

with t as 
(
    select visited_on, sum(amount) amount
    from Customer
    group by visited_on
)

select 
    a.visited_on,
    sum(b.amount) amount,
    round(sum(b.amount)/7,2) average_amount
from t a, t b
where datediff(a.visited_on,b.visited_on) between 0 and 6
group by a.visited_on
having count(*)=7

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2084648.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

金风科技巴西风电装备制造基地正式投运

巴西巴伊亚州当地时间8月27日,金风科技巴西风电装备制造基地投运仪式成功举办。巴西联邦政府矿业能源部(Ministrio de Minas e Energia)部长Alexandre Silveira、巴西巴伊亚州州长Jernimo Rodrigues、中国驻里约热内卢总领事田敏、金风科技总…

Java生成任意长度随机字符串(数字+字母)

根据对于uuid随机获取其index的值组成字符串。生成的字符串越长,唯一性越高。 int i 10;String uuid UUID.randomUUID().toString().replace("-", "");StringBuilder randomStr new StringBuilder();Random random new Random();for (int j…

宠物医院管理平台的设计与实现---附源码93796

目录 摘要 1 绪论 1.1 选题背景与意义 1.2国内外研究现状 1.3论文结构与章节安排 2系统分析 2.1 可行性分析 2.2 系统流程分析 2.2.1系统开发流程 2.2.2 用户登录流程 2.2.3 系统操作流程 2.2.4 添加信息流程 2.2.5 修改信息流程 2.2.6 删除信息流程 2.3 系统功能…

人体存在雷达感应传感器,跌倒、人员存在探测,卫生间秒变智能空间

在这个科技日新月异的时代,智能家居已不再是遥不可及的梦想,而是悄然融入了我们生活的每一个角落。今天,就让我们一起探索一项革新性的技术——人体雷达感应传感器,在卫生间这一私密而重要的空间里,如何以非凡的智慧&a…

6个岗位抢1个人,百万年薪抢毕业生?大厂打响AI人才战

“24岁毕业时年薪50万元,到了30岁大概能升到P7(注:职级名称),那时就能年薪百万了。” 从上海交大硕士毕业后,出生于2000年的赵宏在今年入职腾讯,担任AI算法工程师,成为AI风口下第一批就业的年轻…

第二证券:a股为什么总在3000点徘徊?涨不上去的原因有哪些?

首要,要了解A股3000点指的是大盘指数,首要是反映A股的股价走势。一般情况下,上证指数表明的便是大盘指数,上证指数3000点,也便是大盘指数3000点。 指数常常环绕3000点徜徉,造成这种情况的原因有&#xff1…

USB3.2 摘录(12)

系列文章目录 USB3.2 摘录(一) USB3.2 摘录(二) USB3.2 摘录(三) USB3.2 摘录(四) USB3.2 摘录(五) USB3.2 摘录(六) USB3.2 摘录&…

揭秘2024下半年大学生必考证时间表!

2024下半年,大学生考证时间表已公布,为各位学子规划学术和职业发展提供了明确的时间节点。 以下是值得重点关注的几类考试及其相关时间安排: 一、外语类考试安排,英语四六级考试,报名时间预计在9月,而笔试…

C语言 | Leetcode C语言题解之第381题O(1)时间插入、删除和获取随机元素-允许重复

题目: 题解: #define DYNAMIC_ARRAY_SIZE 128typedef struct {int *data;int size, capacity; } dynamic_array_t; dynamic_array_t *dynamic_array_init() {dynamic_array_t *da malloc(sizeof(dynamic_array_t));da->size 0, da->capacity D…

支付宝开放平台-开发者社区——AI 日报 「8 月 29 日」

1 3分钟千人被裁,IBM中国大败退 量子位|阅读原文 该公司首席执行官 Arvind Krishna早前就表示,公司将在未来五年内,用人工智能取代8000个岗位工作。早在上一轮AI浪潮之初,IBM就已经实现了智能问答系统,成…

基因生物行业大数据中心之间高效数据备份怎么去实现

随着高通量测序技术的迅猛发展,基因数据的积累正以惊人的速度增长。预计到2025年,全球的测序能力将达到Zb的规模。面对海量的数据,传统的数据备份方法已经显得不够用,难以满足跨地区备份和灾难恢复的需求。因此,基因生…

SpringCloudGateway网关技术

一、认识网关 二、网关服务初始化 1、新建网关module、引入依赖 <dependencies><!--common&#xff0c;自己的通用工具类--><dependency><groupId>com.heima</groupId><artifactId>hm-common</artifactId><version>1.0.0<…

亲测好用,ChatGPT 3.5/4.0新手使用手册,最全论文指令手册~ 【2024年9月 更新】

本以为遥遥领先的GPT早就普及了&#xff0c;但小伙伴寻找使用的热度一直高居不下&#xff0c;其实现在很简单了&#xff01; 国产大模型快200家了&#xff0c;还有很多成熟的国内AI产品&#xff0c;跟官网一样使用&#xff0c;还更加好用~ ① 3.5 大多数场景是够用的&#xff…

不良信息公示

系统应用于对各类不良信息进行公示 1、背景 针对目前各类打工人的工作生活&#xff0c;所遇仲裁无门&#xff0c;投诉无果的现象&#xff0c;以及各类公司有恃无恐的态度作为背景&#xff0c;特此对开源项目进行修改&#xff0c;诞生了此套系统 2、系统信息收集 为保障小人…

大模型时代,算法工程师的黄金时代

在大模型时代&#xff0c;算法工程师的角色已经超越了传统的编程和算法优化&#xff0c;他们成为了推动技术革新和业务发展的关键力量。作为一名算法工程师&#xff0c;我深刻地感受到这个时代对我们的新要求和期待。回想起我刚刚踏入这个领域时&#xff0c;深度学习还只是少数…

【多视图聚类】Reconsidering Representation Alignment for Multi-view Clustering

Reconsidering Representation Alignment for Multi-view Clustering CVPR 2021 0.论文摘要和信息 摘要 对齐视图表示的分布是当今用于深度多视图聚类的最先进模型的核心组件。然而&#xff0c;我们发现了nävely对齐表示分布的几个缺点。我们证明了这些缺点既导致表示空间…

07-问题-如何在Python中检查字符串是否为有效的标识符?

问题-如何在Python中检查字符串是否为有效的标识符&#xff1f; 规则 在Python中&#xff0c;标识符用来表示变量、函数、类、模块或其他对象的名字&#xff0c;并且需要遵循以下规则&#xff1a;可以由字母&#xff08;包括大小写&#xff09;、数字和下划线组成。不能以数字…

开放式蓝牙耳机有什么用?四款值得买的高性价比开放式耳机推荐

开放式耳机具有多方面的作用&#xff1a; 佩戴舒适&#xff1a;开放式耳机不入耳&#xff0c;不堵塞耳道&#xff0c;可避免对耳膜造成压迫&#xff0c;长时间佩戴也不会有明显的不适感&#xff0c;像耳挂式或夹耳式设计&#xff0c;还能减少耳部负担&#xff0c;适合需要长时…

什么是IP地址?它有什么用?

IP地址&#xff0c;即互联网协议地址&#xff08;Internet Protocol Address&#xff09;&#xff0c;是互联网上每台设备的数字标识&#xff0c;它如同现实生活中的身份证&#xff0c;确保着网络世界中的每个“居民”都能被准确识别和定位。 IP地址由一串数字组成&#xff0c…

点云数据介绍

本篇内容 通过PCD文件介绍点云数据如何通过PCL库读取和保存PCD点云数据文件 1 点云数据 最简单的点云数据就是一堆三维坐标点&#xff08;x,y,z&#xff09;&#xff0c;除了坐标还可以记录每个点的颜色信息&#xff08;r,g,b&#xff09;&#xff0c;或者强度信息&#xff…