【问题标题】:Proc sql sum for each month每个月的 Proc sql 总和
【发布时间】:2021-08-21 13:17:55
【问题描述】:

我有一张包含日期和价格的表格:

28/01/2016  100
04/02/2016  200
16/04/2016  100
23/04/2016  150
07/05/2016  150
14/05/2016  200
.
.
01/12/2017  80
08/12/2017  200

我想得到一个基于月份和年份的总和,如下所示:

01/2016  100
02/2016  200
04/2016  250
05/2016  350
.
.
12/2017  280

日期当前为 DDMMYY10。格式。

【问题讨论】:

  • "日期当前为 DDMMYY10" 如果您使用的是 SQL Server,这意味着您将日期存储为 varchar 而不是强类型日期和时间数据类型;这是你真的需要修复的设计缺陷。
  • 到目前为止你尝试了什么?
  • 我正在为此使用 SAS
  • “我正在为此使用 SAS” 那么请确保您正确标记并且不要添加与您使用的技术无关的标记;对于您寻求帮助的人来说,这会让事情变得非常混乱。

标签: sas sum proc-sql


【解决方案1】:

将一个月内的任何单个日期值转换为相同的值并按该值分组。例如使用 INTNX() 函数。

select intnx('month',date,'b') as month format=yymm7.
     , sum(price) as total_price
from have
group by month

或者使用 PUT() 函数将其转换为字符串。

select put(date,yymm7.) as month 
     , sum(price) as total_price
from have
group by month

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-08-02
    • 2020-02-11
    • 2021-02-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-16
    相关资源
    最近更新 更多