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

力扣高频SQL 50题(基础版)第四十七题之1321.餐馆营业额变化增长

力扣高频SQL 50题(基础版)第四十七题

1321.餐馆营业额变化增长

题目说明

表: 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 升序排序

实现过程

准备数据

Create table If Not Exists Customer (customer_id int, name varchar(20), visited_on date, amount int)
Truncate table Customer
insert into Customer (customer_id, name, visited_on, amount) values ('1', 'Jhon', '2019-01-01', '100')
insert into Customer (customer_id, name, visited_on, amount) values ('2', 'Daniel', '2019-01-02', '110')
insert into Customer (customer_id, name, visited_on, amount) values ('3', 'Jade', '2019-01-03', '120')
insert into Customer (customer_id, name, visited_on, amount) values ('4', 'Khaled', '2019-01-04', '130')
insert into Customer (customer_id, name, visited_on, amount) values ('5', 'Winston', '2019-01-05', '110')
insert into Customer (customer_id, name, visited_on, amount) values ('6', 'Elvis', '2019-01-06', '140')
insert into Customer (customer_id, name, visited_on, amount) values ('7', 'Anna', '2019-01-07', '150')
insert into Customer (customer_id, name, visited_on, amount) values ('8', 'Maria', '2019-01-08', '80')
insert into Customer (customer_id, name, visited_on, amount) values ('9', 'Jaze', '2019-01-09', '110')
insert into Customer (customer_id, name, visited_on, amount) values ('1', 'Jhon', '2019-01-10', '130')
insert into Customer (customer_id, name, visited_on, amount) values ('3', 'Jade', '2019-01-10', '150')

实现方式

with t1 as (select distinct  # 因为窗口函数是按照日期计算的。所以相同日期的结果也是相同的,直接去重即可visited_on,sum(amount) over(order by visited_on range interval 6 day preceding) amount, # 按照日期排序,范围是当前日期和当前日期的前六天round(sum(amount) over(order by visited_on range interval 6 day preceding)/7, 2) average_amountfrom Customer)
select visited_on,amount,average_amount
from t1
where datediff(visited_on,(select min(visited_on) from Customer))>=6 #去除日期不足7日的结果
order by visited_on;

结果截图

在这里插入图片描述

相关文章:

力扣高频SQL 50题(基础版)第四十七题之1321.餐馆营业额变化增长

力扣高频SQL 50题(基础版)第四十七题 1321.餐馆营业额变化增长 题目说明 表: Customer ---------------------- | Column Name | Type | ---------------------- | customer_id | int | | name | varchar | | visited_on | date | | amount | …...

django中的MESSAGE组件

文章目录 message组件1 使用配置2 设置值3 读取值4 源码分析 message组件 1 使用配置 INSTALLED_APPS [# django.contrib.admin,# django.contrib.auth,# django.contrib.contenttypes,# django.contrib.sessions,django.contrib.messages,django.contrib.staticfiles,"…...

【JavaSE】解读Java中的toString方法

前言: 在Java中,toString方法来自java.lang.Object 类,然后所有对象都继承该Object 类。默认情况下,它的作用是返回对象的字符串表示形式。在实际开发中,重写 toString() 方法可以帮助我们以更易读的形式输出对象信息&…...

软件工程的核心原则:KISS, DRY, SOLID, YAGNI

软件工程的核心原则:KISS, DRY, SOLID, YAGNI — 深入解析与实践指南 引言 在软件开发的广阔领域中,原则和实践是构建高质量、可维护系统的基石。本文将深入探讨四个核心原则:KISS(保持简单,愚蠢)、DRY&a…...

Android 高通7.1系开机动画自动跟随系统方向旋转

本篇博客是记录自己解决开机动画与系统方向不一致方案代码,思路:在系统参数根目录自定义persist.sys.hwrotationxrd0来作为动画方向,当修改系统方向时同时修改这个参数,当系统启动加载动画时在根据这个来旋转动画方式以保证动画方…...

Sentinel入门与进阶:微服务流量控制的最佳实践 ( 三 )

5.配置持久化 目前的sentinel,无法满足我们生产环境的需求,因为一旦sentinel-dashboard发生重启,限流规则也会随之丢失。 sentinel规则的持久化: Sentinel自身就支持了多种不同的数据源来持久化规则配置,比如文件配置&#xff0…...

2021年上半年网络工程师考试上午真题

2021年上半年网络工程师考试上午真题 网络工程师历年真题含答案与解析 第 1 题 以下关于RISC和CISC计算机的叙述中,正确的是( )。 (A) RISC不采用流水线技术,CISC采用流水线技术(B) RISC使用复杂的指令,CISC使用简…...

SQL触发器的级联魔力:数据完整性的守护者

标题:SQL触发器的级联魔力:数据完整性的守护者 在SQL的丰富世界中,触发器(Trigger)是一种特殊的存储过程,它能够自动执行响应数据库中的数据修改事件。而级联操作(Cascade)则是触发…...

ARCGIS PRO 要素标注背景色透明度的设置

使用ArcGIS Pro 设置标注背景色的透明度 一、点击标注属性 二、点击符号、注释 三、下拉框选择背景 四、背景符号 五、点击颜色 六、编辑颜色 七、应用...

探讨MySQL中 “约束“ 下的查询

目录: 一. 数据库约束 二. 表的设计 三. 聚合查询 四.联合查询 一. 数据库约束: 1.约束类型汇总: 约束类型 说明 NULL约束使用NOT NULL指定列不为 空UNIQUE唯一约束指定列为唯一的、不重复的DEFAULT默认值约 …...

Nuxt3【布局】layouts 详解

Nuxt 内置布局框架&#xff0c;用法如下&#xff1a; 修改 app.vue <template><NuxtLayout><NuxtPage /></NuxtLayout> </template>NuxtLayout 为 Nuxt 的内置组件&#xff0c;默认加载 layouts/default.vue &#xff0c;若页面中指定了布局&…...

获取数据源(多种方式爬虫介绍)

获取不同类型的数据源&#xff1a; 对于看上的网站如何获取其信息&#xff1a; 1.分析原网站是如何获取到这些数据的&#xff1f;哪个接口&#xff1f;哪些参数&#xff1f; 2.用程序去调用接口&#xff08;python/java都可以&#xff09; 3.处理一些数据&#xff0c;优化数…...

Linux下FTP服务器搭建配置:vsftpd的安装与配置实验

文章目录 vsftpd的安装与配置指南1. vsftpd的安装2. vsftpd配置详解3. 匿名访问测试4. 本地用户访问FTP的配置5. 修改匿名用户和本地用户的默认根目录6. 黑名单与白名单的使用7. 使用Windows文件资源管理器登录8. 拓展FTP的使用场景9. 注意事项 vsftpd的安装与配置指南 本文详…...

使用Java调用Apache commons-text求解字符串相似性实战

目录 前言 一、字符串距离的几种计算方法 1、Levenshtein 距离 2、Overlap Coefficient计算 3、Q-gram Matching 4、余弦相似性计算 二、基于余弦相似性的基地名称对比 1、加载百科中的基地信息列表 2、设置忽略词列表 3、将数据库地名和Excel进行对比 三、总结 前言…...

http request-01-XMLHttpRequest XHR 简单介绍

http 请求系列 http request-01-XMLHttpRequest XHR 简单介绍 http request-01-XMLHttpRequest XHR 标准 Ajax 详解-01-AJAX&#xff08;Asynchronous JavaScript and XML&#xff09;入门介绍 Ajax XHR 的替代方案-fetch Ajax XHR 的替代方案-fetch 标准 Ajax 的替代方案…...

关于tresos Studio(EB)的MCAL配置之DIO

General Dio Development Error Detect开发者错误检测 Dio Flip Channel Api翻转通道电平接口Dio_FlipChannel是否启用 Dio Version Info Api决定Dio_GetVersionInfo接口是否启用&#xff0c;一般打开就行。 Dio Reverse Port Bits让端口的位&#xff08;通道&#xff09;进…...

【漫谈C语言和嵌入式003】1394总线

1394总线&#xff08;FireWire或IEEE 1394&#xff09;是一种高速串行总线标准&#xff0c;最初由苹果公司开发&#xff0c;并在1995年被IEEE&#xff08;电气与电子工程师协会&#xff09;批准为国际标准。它最初的目标是提供一种高性能、低延迟的数据传输方法&#xff0c;用于…...

python爬虫爬取某图书网页实例

文章目录 导入相应的库正确地设置代码的基础部分设置循环遍历遍历URL保存图片和文档全部代码即详细注释 下面是通过requests库来对ajax页面进行爬取的案例&#xff0c;与正常页面不同&#xff0c;这里我们获取url的方式也会不同&#xff0c;这里我们通过爬取一个简单的ajax小说…...

Linux 用户管理的基本概念、常用工具及操作流程

&#x1f600;前言 本篇博文是关于Linux 中用户管理的基本概念、常用工具及操作流程&#xff0c;并提供了一些实用的示例和注意事项。希望这些内容能帮助读者在日常工作中更加高效地管理 Linux 系统的用户账户&#xff0c;希望你能够喜欢&#x1f970; &#x1f3e0;个人主页&a…...

手撕C++入门基础

1.C介绍 C课程包括&#xff1a;C语法、STL、高阶数据结构 C参考文档&#xff1a;Reference - C Reference C 参考手册 - cppreference.com cppreference.com C兼容之前学习的C语言 2.C的第一个程序 打印hello world #define _CRT_SECURE_NO_WARNINGS 1 // test.cpp // …...

MicroOS:Arduino轻量级任务调度内核详解

1. MicroOS&#xff1a;面向Arduino的轻量级任务管理内核概述MicroOS是一个专为Arduino平台设计的极简型实时任务管理器&#xff0c;其核心定位并非替代FreeRTOS或Zephyr等完整RTOS&#xff0c;而是填补Arduino原生loop()单线程模型在多任务调度、精确定时与事件解耦方面的空白…...

UniApp+Vue3避坑指南:为什么getAppWebview会失效?从原理到解决方案

UniAppVue3深度解析&#xff1a;getAppWebview失效的底层逻辑与工程化解决方案 在UniApp与Vue3的技术栈组合中&#xff0c;不少开发者遭遇过getAppWebview神秘失效的困境。这个看似简单的API调用问题&#xff0c;背后却隐藏着Vue3响应式系统变革与UniApp多端渲染机制的深层交互…...

效率提升秘籍:用快马AI自动生成六花直装更新页面,节省开发时间

作为一名经常需要维护应用更新页面的开发者&#xff0c;我深刻体会到手动编写更新日志的繁琐。每次版本迭代&#xff0c;从整理更新内容到排版发布&#xff0c;往往要耗费大量时间。最近尝试用InsCode(快马)平台的AI功能自动生成更新页面&#xff0c;效率提升非常明显。 传统更…...

VS Code终端切换全攻略:从PowerShell到CMD的保姆级教程(含常见问题解决)

VS Code终端切换全攻略&#xff1a;从PowerShell到CMD的保姆级教程&#xff08;含常见问题解决&#xff09; 在开发者的日常工作中&#xff0c;终端是不可或缺的工具。VS Code作为最受欢迎的代码编辑器之一&#xff0c;其内置终端功能强大且高度可定制。然而&#xff0c;许多开…...

Wan2.2-I2V-A14B镜像免配置实战:开箱即用,省去PyTorch/CUDA环境冲突烦恼

Wan2.2-I2V-A14B镜像免配置实战&#xff1a;开箱即用&#xff0c;省去PyTorch/CUDA环境冲突烦恼 1. 镜像概述与核心优势 Wan2.2-I2V-A14B是一款专为文生视频任务优化的私有部署镜像&#xff0c;基于RTX 4090D 24GB显存显卡和CUDA 12.4环境深度定制。这个镜像的最大特点是开箱…...

tkinter表格神器tkintertable实战:5分钟搞定可拖拽编辑的数据表格(附完整代码)

tkinter表格神器tkintertable实战&#xff1a;5分钟搞定可拖拽编辑的数据表格&#xff08;附完整代码&#xff09; 在Python GUI开发中&#xff0c;表格控件一直是刚需但实现起来又颇为棘手的组件。传统tkinter自带的Treeview虽然能勉强实现表格功能&#xff0c;但在交互体验上…...

LangGPT结构化提示词框架:重新定义AI交互的核心方法

LangGPT结构化提示词框架&#xff1a;重新定义AI交互的核心方法 【免费下载链接】LangGPT LangGPT: Empowering everyone to become a prompt expert!&#x1f680; Structured Prompt&#xff0c;Language of GPT, 结构化提示词&#xff0c;结构化Prompt 项目地址: https://…...

5分钟搞定!用Docker Compose一键部署Penpot设计协作平台(含SMTP配置避坑指南)

5分钟极速部署Penpot&#xff1a;Docker Compose全流程指南与SMTP实战避坑 中小团队在设计协作工具选型时&#xff0c;往往陷入两难&#xff1a;商业软件成本高昂&#xff0c;开源方案部署复杂。Penpot作为Figma的开源替代品&#xff0c;凭借其完整的协作功能和零成本优势&…...

斯坦福邱肖杰:自动化组学发现的可进化多智能体框架

摘要 大型语言模型驱动的自主智能体系统与单细胞生物学的融合&#xff0c;有望推动生物医学发现领域的范式转变。然而&#xff0c;现有生物智能体系统基于单智能体架构构建&#xff0c;要么功能单一、要么过于泛化&#xff0c;仅适用于常规分析。本文介绍&#xff11;种可进化…...

若依框架单点登录!!!

一、不分离版在application.yml设置maxSession为1即可。修改shiro的配置shiro:session:# 同一个用户最大会话数&#xff0c;比如2的意思是同一个账号允许最多同时两个人登录&#xff08;默认-1不限制&#xff09;maxSession: 1# 踢出之前登录的/之后登录的用户&#xff0c;默认…...