4.查询用户的累计消费金额及VIP等级

news2024/11/25 6:37:46

在这里插入图片描述
在这里插入图片描述
思路分析:
(1)按照user_id及create_date 分组求消费金额total_amount
(2)开窗计算同user_id下的累计销售金额sum(total_amount) over(partition by user_id order by create_date ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) as sum_so_far
(3)根据sum_so_far的值写case when语句判断会员等级
注:关键点在于:ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW
这段代码,它的含义是开窗范围是从起始行到当前行,一般用于从起始行到当前行的累计值计算场景

代码实现:

select 
    user_id,
    create_date,
    sum_so_far,
    case
        when sum_so_far >= 0
        and sum_so_far < 10000 then '普通会员'
        when sum_so_far >= 10000
        and sum_so_far < 30000 then '青铜会员'
        when sum_so_far >= 30000
        and sum_so_far < 50000 then '白银会员'
        when sum_so_far >= 50000
        and sum_so_far < 80000 then '黄金会员'
        when sum_so_far >= 80000
        and sum_so_far < 100000 then '白金会员'
        when sum_so_far >= 100000 then '钻石会员'
        else null
    end as vip_level
from (
        SELECT 
            user_id,
            create_date,
            sum(total_amount) over( partition by user_id order by create_date ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) as sum_so_far
        from (
                select 
                    user_id,
                    create_date,
                    sum(total_amount) total_amount
                from order_info
                group by user_id,
                    create_date
            ) t0
    ) t1;

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

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

相关文章

报错——warning: ignoring JAVA_HOME=/home/jdk/jdk1.8.0_281; using bundled JDK

我使用了es的8.3.0版本&#xff0c;但es从7.17版本以后不再支持jdk1.8了&#xff0c;需要进行JDK的版本升级&#xff0c;或者降低es的版本。 es和jdk对比版本

口袋参谋:如何写出高权重标题?用对这招很重要!

​如何写出高权重标题&#xff1f;这是99.99%的卖家都存在的疑虑&#xff01; 以前写高权重标题&#xff0c;很多卖家往往会复制同行竞品爆款标题到淘宝首页搜索框&#xff0c;然后在全标题后面加上几个字母&#xff0c;就可以拆分爆款标题。 这个问题我之前也说过&#xff0…

【Java基础面试三】、说一说你对Java访问权限的了解

文章底部有个人公众号&#xff1a;热爱技术的小郑。主要分享开发知识、学习资料、毕业设计指导等。有兴趣的可以关注一下。为何分享&#xff1f; 踩过的坑没必要让别人在再踩&#xff0c;自己复盘也能加深记忆。利己利人、所谓双赢。 面试官&#xff1a;说一说你对Java访问权限…

css3自动吸附scroll-snap

我们希望可以一块一块的滚动&#xff0c;比如当前一个块滚出去了一部分并且后一个块滚进来一部分的时候&#xff0c;实现后一个块自动滚入或者前一个块回弹到初始位置这种效果&#xff0c;以前的时候用js需要写比较复杂的判断逻辑&#xff0c;后来有了一个css scroll snap这个方…

Kotlin笔记(四):高阶函数

1. 高阶函数 1.1 定义高阶函数 高阶函数和Lambda的关系是密不可分的。一些与集合相关的函数式API的用法&#xff0c;如map、filter函数等,Kotlin的标准函数&#xff0c;如run、apply函数等。这几个函数有一个共同的特点&#xff1a;它们都会要求我们传入一个Lambda表达式作为参…

从虚拟电厂在上海的实践探索看企业微电网数字化的意义

安科瑞 华楠 作为典型的人口聚集、负荷密集区域&#xff0c;上海市具有外来电比例高、本地资源禀赋不足的特点。从发电侧角度来看&#xff0c;近年来上海风、光等新能源发电装机比例逐年提升&#xff0c;传统的火电逐渐成为调节性发电资源&#xff1b;从负荷侧角度来看上海以第…

什么是补丁管理,如何选择补丁管理软件

补丁管理是识别、测试、部署和安装软件补丁&#xff08;或更新&#xff09;到计算机的过程。软件补丁是一段代码&#xff0c;专为修复软件中的现有错误/漏洞、添加新功能或增强其安全性而量身定制。 通常&#xff0c;软件补丁管理过程包括扫描网络中的计算机以查找缺失的补丁&…

WATLOW CAS200 CLS216 释放人工智能(AI)能力用于导航

WATLOW CAS200 CLS216 释放人工智能(AI)能力用于导航 正如本周在自动化2019展示和会议&#xff0c;MiR1000可以在动态环境中自动拾取、运输和交付托盘和其他重达1000千克(2200磅)的重物。与2018年推出的MiR500一样&#xff0c;MiR1000旨在作为工厂车间叉车的协作、安全和灵活…

架构-设计原则

1、面向对象的SOLID 1.1 概述 SOLID是5个设计原则开头字母的缩写&#xff0c;其本身就有“稳定的”的意思&#xff0c;寓意是“遵从SOLID原则可以建立稳定、灵活、健壮的系统”。5个原则分别如下&#xff1a; Single Responsibility Principle&#xff08;SRP&#xff09;&am…

c++香甜的黄油(acwing)

农夫John发现了做出全威斯康辛州最甜的黄油的方法&#xff1a;糖。 把糖放在一片牧场上&#xff0c;他知道 N 只奶牛会过来舔它&#xff0c;这样就能做出能卖好价钱的超甜黄油。 当然&#xff0c;他将付出额外的费用在奶牛上。 农夫John很狡猾&#xff0c;就像以前的巴甫洛夫…

双十一购物指南:电视盒子哪个牌子好?口碑电视盒子品牌排行榜

双十一可以说是年度最低价&#xff0c;我们都会在此时买买买&#xff0c;电视盒子作为日常必备销量同样火爆&#xff0c;近来很多朋友咨询小编电视盒子哪个牌子好&#xff0c;因此我整理了用户评价最高的电视盒子品牌排行榜&#xff0c;看完就知道哪些电视盒子最值得买了。 推荐…

mysql优化(关联表查询效率低下问题)

场景:表A和表B关联 A.id B.a_id 查询,并用表A的字段create_time排序(查询条件附带between create_time) 造成结果:explain结果如下,(查询结果耗时长) 原因:尚不明确. 解决方案:给B的a_id字段加上索引(create index index_a_id on B(a_id)),就解决了一部分问题.查询速度提升上…

pg 时间操作方法

1.概念 本质就是个宏定义&#xff0c;只是动态的 2.常用使用形式和函数 current_date &#xff1a;当前时间 current_timestamp&#xff1a;时间戳&#xff0c;更细 date ‘当前日期’ &#xff1a;指定日期 age&#xff08;日期1&#xff0c;日期2&#xff09;&#xf…

OpenWrt如何公网ssh远程连接【内网穿透】

文章目录 1.安装cpolar内网穿透2.配置SSH远程访问隧道3.公网远程连接4.固定远程连接地址 简单几步实现openWRT结合cpolar内网穿透工具实现远程ssh连接 1.安装cpolar内网穿透 cpolar是一个非常棒的跨平台、内网穿透工具&#xff0c;可以通过安全隧道将NAT或防火墙后面的本地服…

“5G+北斗”赋能千行百业,中海达亮相2023中国移动全球合作伙伴大会

10月12日&#xff0c;2023中国移动全球合作伙伴大会在广州保利世贸博览馆召开。本次活动以“算启新程 智享未来”为主题&#xff0c;重点展示中国移动全球合作伙伴在5G、终端、数智城市等方面的新产品、新技术和新服务。作为中国移动“朋友圈”战略合作企业及“北斗时空子链”链…

Python实现简易过滤删除数字的方法

嗨喽~大家好呀&#xff0c;这里是魔王呐 ❤ ~! python更多源码/资料/解答/教程等 点击此处跳转文末名片免费获取 如果想从一个含有数字&#xff0c;汉字&#xff0c;字母的列表中滤除仅含有数字的字符&#xff0c; 当然可以采取正则表达式来完成&#xff0c;但是有点太麻烦了…

【前端】vue在Windows平台IIS的部署

系列文章 【C#】IIS平台下&#xff0c;WebAPI发布及异常处理 本文链接&#xff1a;https://blog.csdn.net/youcheng_ge/article/details/126539836 【Vue】vue2与WebApi跨域CORS问题 本文链接&#xff1a;https://blog.csdn.net/youcheng_ge/article/details/133808959 文章目…

了解容器运行时安全:保护你的容器应用

前言 容器是一种虚拟化技术&#xff0c;用于封装和运行应用程序及其依赖项&#xff0c;以便在不同的计算环境中保持一致性和可移植性。自2013年容器诞生至今&#xff0c;容器Docker镜像的下载量超20亿&#xff0c;虽然容器行业发展如火如荼&#xff0c;但是其安全风险却不容乐…

软件测试定位bug方法+定位案例(详解)

1、问题bug定位技巧 首先&#xff0c;作为开发也好&#xff0c;测试也好&#xff0c;定位问题有一个总的思路&#xff0c;而这个思路是和数据的走向一致的。 大致是这样&#xff1a; 用户层面问题 -> Web页面/软件界面 -> 中间件 -> 后端服务 -> 代码 -> 数据…