MySQL基础练习题23-门店处理

news2024/12/23 16:33:31

目录

题目

准备数据 

分析数据 

方法一

方法二


题目

从分店明细表中获取门店面积。

准备数据 

-- 创建库
drop database if exists db_1;
create database db_1;
use db_1;

-- 创建门店面积表 tb_store_area
CREATE TABLE tb_store_area (
                               store_no     VARCHAR(50),
                               area_type_no INT,
                               area         INT
);

-- 插入数据到门店面积表 tb_store_area
INSERT INTO tb_store_area (store_no, area_type_no, area) VALUES
                                                             ('T065', 8, 135),
                                                             ('T067', 8, 139),
                                                             ('T065', 7, 157),
                                                             ('T066', 7, 178),
                                                             ('T068', 2, 178),
                                                             ('T065', 1, 158),
                                                             ('T066', 1, 160),
                                                             ('T067', 1, 145);

输入:

 门店面积表 tb_store_area

分析数据 

  • 门店面积信息可以从分店面积明细表中获取。

    • 先取实际经营面积(8),

    • 如果取不到(实际经营面积为空)再取经营面积(7)。

    • 如果取不到(经营面积为空)再取合同面积(1)。

    • 如果取不到(合同面积为空)再取外滩面积(2)。

    • 总结一下: 优先级就是 8 > 7 > 1 > 2

方法一

with t2 as (
    with t1 as (
        select  store_no,
                area_type_no,
                area,
                case
                    when area_type_no = 8 then 1
                    when area_type_no = 7 then 2
                    when area_type_no = 1 then 3
                    when area_type_no = 2 then 4
                    end rn
        from tb_store_area
    ) select
          store_no,
          area_type_no,
          area,
          row_number() over (partition by store_no) as rn
    from t1
)select store_no,area from t2
where rn = 1;

说明:利用case when将门店面积分级别,然后排序,选最高级别的 

简化

with t1 as (
    select
        store_no,
        area_type_no,
        area,
        row_number() over (
            partition by store_no
            order by (
                case
                    when area_type_no=8 then 1
                    when area_type_no=7 then 2
                    when area_type_no=1 then 3
                    when area_type_no=2 then 4
                end
            )
        ) as rn
    from tb_store_area
)
select * from t1
where rn = 1
;

方法二

第一步:先判断最大值是否是8,7,1,2,如果不是为null

-- 第一步:先判断最大值是否是8,7,1,2,如果不是为null
select
    store_no,
    max(if (area_type_no =8,area,null)) as area_8,
    max(if (area_type_no =7,area,null)) as area_7,
    max(if (area_type_no =1,area,null)) as area_1,
    max(if (area_type_no =2,area,null)) as area_2
from tb_store_area
group by store_no;

第二步: 用coalesce函数选出第一个不是null的

-- 第二步:用coalesce函数选出第一个不是null的
select
    store_no,
    coalesce(
            max(if(area_type_no = 8, area, null)),
            max(if(area_type_no = 7, area, null)),
            max(if(area_type_no = 1, area, null)),
            max(if(area_type_no = 2, area, null))
    ) as area
from tb_store_area
group by store_no;

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

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

相关文章

[器械财讯]TRiCares完成近4亿融资,推动Topaz三尖瓣置换系统发展

一、融资成功助力临床研究 法国医疗器械公司TRiCares近期宣布,其D轮融资成功筹集5000万美元,所得资金将专用于支持其核心产品——经导管三尖瓣置换系统(TTVR)Topaz的临床研究和开发。这笔资金将用于在美国和欧盟开展临床研究&…

手持红外热成像仪的使用方法_鼎跃安全

手持红外热成像仪是一种便携设备,方便在现场进行温度检测和成像。他们能将物体发出的不可见红外能量转化为可见的热图像,直观展示物体表面的温度分布情况;广泛应用于电气设备维修、环保检查、应急救援等领域。接下来,我们一起来了…

行业原型:智慧教育线上平台-学院原型

行业原型预览链接: 文件类型:.rp 支持版本:Axrure RP 8 文档名称:智慧教育线上平台-学院 文件大小:1.80 MB 目录内容介绍 文档内容介绍 回复“211110” 领取

《最新出炉》系列小成篇-Python+Playwright自动化测试-66 - 等待元素至指定状态(出现、移除、显示和隐藏)

1.简介 在我们日常工作中进行UI自动化测试时,保证测试的稳定性至关重要。其中一个关键方面是正确地定位和操作网页中的元素。在网页中,元素可能处于不同的状态,有些可能在页面加载完成之前不在DOM中,需要某些操作后才会出现&…

视频剪辑sdk,跨平台部署,助力企业差异化竞争

在这个内容为王的时代,视频已成为连接用户、传递价值的核心媒介。无论是社交媒体、在线教育、短视频平台还是新闻资讯,高质量的视频内容都是吸引用户、提升用户体验的关键。然而,对于众多企业而言,如何高效、专业地处理视频内容&a…

字节跳动春节抖音视频红包系统设计与实现--图文解析

字节跳动春节抖音视频红包系统设计与实现–图文解析 原作者:字节跳动技术团队 原文链接:https://www.toutiao.com/article/7114224228030841374 原标题:2022 春节抖音视频红包系统设计与实现 我们做了什么 业务背景 在春节活动期间&…

洛谷 P10034 「Cfz Round 3」Circle

[Problem Discription] \color{blue}{\texttt{[Problem Discription]}} [Problem Discription] [Solution] \color{blue}{\texttt{[Solution]}} [Solution] 这是道好题。 建图,对每一个 i → p i i \to p_{i} i→pi​ 都建立一个有向边,就可以得到一个…

记一次学习--[网鼎杯 2018]Comment二次注入

目录 本文章只展示二次注入过程,后续获取flag并不展示 靶场 网站流程、密码的破解和目录的查询以及对于源代码获取 密码暴力破解 网站目录扫描 网站源代码获取 网站流程 尝试注入 注入代码 本文章只展示二次注入过程,后续获取flag并不展示 靶场…

IntelliJ IDEA 2024.2 夏季大版本发布,不得不说,更强了!

因 CSDN 上传大小限制,本文推荐微信中阅读,动图更完整,微信中阅读,请欢迎关注公众号:CodeFit 创作不易,如果你觉得这篇文章对您有帮助,请不要忘了 点赞、分享 和 关注,为我的 持续创…

Katalon Studio 使用教程——自动获取元素定位功能

这个功能很实用,简单来讲可以形容为,想要哪里点哪里,so easy。 比如你想定位某个输入框,只需要按住【Alt】,点一下输入框,系统就自动记录下来这个输入框叫什么,它的xpath是什么。你想要按钮就点…

arXiv2024.8.6 | LLaVA-OneVision:Easy Visual Task Transfer

Comment: Project Homepage: https://llava-vl.github.io/blog/2024-08-05-llava-onevision/ 论文标题:LLaVA-OneVision:Easy Visual Task Transfer 论文地址:https://arxiv.org/abs/2408.03326 GitHub:https://llava-vl.githu…

4岁小孩孤独症的表现

在儿童的成长过程中,孤独症(也称自闭症)的早期识别与干预至关重要。对于4岁的孩子而言,孤独症的表现可能已经开始显现,家长和教育者需保持高度敏感,以便及时采取措施。 社交互动障碍:4岁孤独症儿…

Stable Diffusion绘画 | 图生图-上传重绘蒙版

上传重绘蒙版,可以弥补局部重绘的缺点,能够更精细的修改画面中的指定区域 使用PS制作的蒙版图片为耳朵下方区域,可以为图片中的女生带上不同款式的耳环。 参数配置: 调整提示词: 生成图片如下所示: 调整提…

龙腾CMS downloadFile接口任意文件读取漏洞复现 [附POC]

文章目录 龙腾CMS downloadFile接口任意文件读取漏洞复现 [附POC]0x01 前言0x02 漏洞描述0x03 影响版本0x04 漏洞环境0x05 漏洞复现1.访问漏洞环境2.构造POC3.复现龙腾CMS downloadFile接口任意文件读取漏洞复现 [附POC] 0x01 前言 免责声明:请勿利用文章内的相关技术从事非…

分享一个基于数据可视化的交通感知与车辆检测协同系统(源码、调试、LW、开题、PPT)

💕💕作者:计算机源码社 💕💕个人简介:本人 八年开发经验,擅长Java、Python、PHP、.NET、Node.js、Android、微信小程序、爬虫、大数据、机器学习等,大家有这一块的问题可以一起交流&…

【SQL】产品销售分析 I

目录 题目 分析 代码 题目 销售表 Sales: -------------------- | Column Name | Type | -------------------- | sale_id | int | | product_id | int | | year | int | | quantity | int | | price | int | ---------------…

【省流】入网,继续更!

大家好,我是一名默默学习的计算机小菜菜 在几分钟前我决定继续学习计算机知识和写博客 在这之前我已经停写了很久了,因为我真的找不到相关工作啊啊啊,有点萎靡,经常性精神内耗, 而之所以我死灰复燃(可能不…

NeRF的代码复现以及人工智能入门

🏆本文收录于《CSDN问答解惑-专业版》专栏,主要记录项目实战过程中的Bug之前因后果及提供真实有效的解决方案,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收…

Effective-Java-Chapter4

https://github.com/clxering/Effective-Java-3rd-edition-Chinese-English-bilingual/tree/dev/Chapter-4 准则一 减少类和成员的可访问性 如果一个方法覆盖了超类方法,那么它在子类中的访问级别就不能比超类 [JLS, 8.4.8.3] 更严格非零长度的数组总是可变的&am…

3、pnpm yarn npm

项目里实际上就只有这些依赖 node module 里却有很多的包 原因: 比如说vue,vue内部有依赖了其余的包。工具又依赖了别的依赖 造成的问题:我可以直接去用这个包,但是这个包在package.json中却没有看到-----幽灵依赖 那如果说别…