【问题标题】:First month customers amount第一个月客户数量
【发布时间】:2020-09-08 15:50:05
【问题描述】:

Teradta - SQL 我只需要向第一个月的客户显示 (new_col) 所有月份的金额

有:

date        cust sum
2020-04-01  1    100
2020-04-01  2    100
2020-05-01  1    100
2020-05-01  3    100
2020-06-01  4    100
2020-06-01  2    100

需要:

date        cust sum  new_col
2020-04-01  1    100  100
2020-04-01  2    110  110
2020-05-01  1    120  120
2020-05-01  3    100  null
2020-06-01  4    100  null
2020-06-01  2    140  140

【问题讨论】:

  • Russian:Каковалогиканулевогозначения? English:null值的逻辑是什么?
  • 你尝试了什么?如果您希望得到帮助,您需要付出一些努力。
  • new_col 列应仅包含第一个月内的客户 (cust) 的总和。在示例中,这是日期 2020-04-01 和 cust 1,2。其余的 (3,4) - null

标签: sql range teradata monthcalendar


【解决方案1】:

看来你需要一个 Group Min

假设日期总是一个月的 1 号:

case
  when min(date) over (partition by cust) -- min date for customer
     = min(date) over ()                  -- min date overall
  then sum
end

【讨论】:

    猜你喜欢
    • 2020-09-13
    • 1970-01-01
    • 1970-01-01
    • 2020-02-01
    • 1970-01-01
    • 2020-10-05
    • 1970-01-01
    • 2020-10-13
    • 2021-01-16
    相关资源
    最近更新 更多