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

【HQL - 查询用户的累计消费金额及VIP等级】

水善利万物而不争,处众人之所恶,故几于道💦

题目:

从订单信息表(order_info)中统计每个用户截止其每个下单日期的累积消费金额,以及每个用户在其每个下单日期的VIP等级。

用户vip等级根据累积消费金额计算,计算规则如下:
设累积消费总额为X,
若0=<X<10000,则vip等级为普通会员
若10000<=X<30000,则vip等级为青铜会员
若30000<=X<50000,则vip等级为白银会员
若50000<=X<80000,则vip为黄金会员
若80000<=X<100000,则vip等级为白金会员
若X>=100000,则vip等级为钻石会员

在这里插入图片描述

select
  t2.user_id,
  t2.create_date,
  t2.sum_so_far,
  case
    when t2.sum_so_far >= 0 and t2.sum_so_far < 10000 then "普通会员"
    when t2.sum_so_far < 30000 then "青铜会员"
    when t2.sum_so_far < 50000 then "白银会员"
    when t2.sum_so_far < 80000 then "黄金会员"
    when t2.sum_so_far < 100000 then "白金会员"
    else "钻石会员"
  end vip_level
from
  (
    select
      t1.user_id,
      t1.create_date,
      sum(t1.sum_amount) over(partition by user_id order by create_date rows between unbounded preceding and current row) sum_so_far
    from
      (
        select
          user_id,
          create_date,
          sum(total_amount) sum_amount
        from
          order_info
        group by
          user_id,
          create_date
      ) t1
  ) t2

总结:

1.可能会出现这种情况,所以要以user_id和create_date分组,然后求sum(total_amount),计算出没人每天的总消费金额

在这里插入图片描述

2.然后求截至每个下单日期的累计下单金额sum(sum_amount),求和的范围用窗口函数限定,user_id分组,组内以create_date升序排序,然后行的范围是第一行(unbounded preceding)到当前行(current row

3.最后在外层查询中用case when分类


http://www.kler.cn/a/15630.html

相关文章:

  • 项目配置文件选择(Json,xml,Yaml, INI)
  • 校园二手交易网站毕业设计基于SpringBootSSM框架
  • Android OpenGL ES详解——glTexImage2D方法
  • rk3399开发环境使用Android 10初体验蓝牙功能
  • 【Pip】如何清理 `pip` 包管理器 —— 完整指南
  • stm32——通用定时器时钟知识点
  • 霍兰德人格分析雷达图
  • 【Qt】根据界面所在显示器自适应调整ui大小
  • 省钱!NewBing硬核新玩法;手把手教你训练AI模特;用AI替代同事的指南;B站最易上手AI绘画教程 | ShowMeAI日报
  • Raft 共识算法4-选举限制
  • 【JavaEE初阶】多线程(四)阻塞队列 定时器 线程池
  • async函数学习总结
  • Navicat和Dbeaver有什么区别
  • Java --- springboot2的静态资源配置原理
  • 轻量级「行泊一体」爆发前夜!这家智驾Tier1正加码抢占市场
  • VC++运行时库整理
  • Word转PDF:简单步骤,轻松完成!推荐两个实现的方法
  • 为什么重写equals时必须重写hashCode()
  • 【容器化应用程序设计和开发】2.2 Dockerfile 的编写和最佳实践
  • ChatGPT会一直火热下去吗?他会是下一个AR,区块链吗?
  • WRF模式应用:天气预报、模拟分析观测气温、降水、风场、水汽和湿度、土地利用变化、土壤及近地层能量水分通量、土壤、水体、植被等相关气象变量
  • 分治算法(Divide and Conquer)
  • Winform从入门到精通(34)—SaveFileDialog(史上最全)
  • 10.Yarn概述
  • ESP32 ESP-Rainmaker 本地点灯控制Demo测试
  • leetcode19_删除链表的倒数第 N 个结点