码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 4.查询用户的累计消费金额及VIP等级


    在这里插入图片描述
    在这里插入图片描述
    思路分析:
    (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;
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
  • 相关阅读:
    笔记37:全卷积网络FCN结构详解
    Mvvm中的Lifecycle
    【附源码】计算机毕业设计java中国朝鲜族民族特色服务系统设计与实现
    Unity笔记--渲染顺序
    这五个步骤,网络有故障,自己都能解决
    灾难恢复架构规划要点
    基于Python的招聘岗位数据分析系统的设计与实现
    部署LVS-NAT群集实验
    Flink学习笔记(一):Flink重要概念和原理
    产品经理或项目经理考PMP,薪资会不会提高?
  • 原文地址:https://blog.csdn.net/DaDiNiWangGe/article/details/133858516
  • 最新文章
  • 让 FastAPI Agent 思考不阻塞:手把手教你实现异步任务与后台处理方案
    BMAD Story Automator 上手实录:把 5 个待办 Story 交给 AI 自主推进
    自己用 ai 写了个链接 mysql 数据库的 mcp 工具
    用ANTLR实现表达式词法和语法分析器
    Claude Code安装,接入阿里云百炼模型,蹭蹭免费额度
    JVM缓存对象对GC的影响与优化方案
    基于多模态视觉模型和图文向量模型的工业图像知识库研究与应用
    .NET 8 Web开发入门(四):注入燃料——Entity Framework Core 与 Code First 实战
    当 AI 开始写代码,谁来保证它不会翻车?
    深入剖析Java内存模型与volatile关键字
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号