【发布时间】:2020-10-30 14:31:37
【问题描述】:
我有一个正在创建的临时表,我们会说第 1 列是 YearMonth,第 2 列是 user_id,第 3 列是 flag1,第 4 列是 flag。
YearMonth User_id Flag1 Flag2 200101 1 N N 200101 2 N N 200101 3 是 否我想根据标志最小 YearMonth。
所以例如当 flag1=N 然后为每个用户 ID 获取最少的 YearMonth,同样的方式为 flag2=N 然后为每个用户 ID 获取最少的 YearMonth。 注意:这里,如果 Flag1 为 N,那么 Flag2 将始终为 N,但 Flag2 的用户 ID 可能比 Flag1 多。
我是 SAS 新手,当我尝试使用下面的 case 语句时:
SELECT distinct t1.userid,
case when t1.flag1='N' then MIN(t1.YearMonth) end as YearMonth1,
case when t1.flag2='N' then MIN(t1.YearMonth) end as YearMonth2
FROM WORK.table t1
GROUP BY 1;
我想知道为什么它不会产生如下输出:
用户 ID 年月 1 年月 2 1 202001 202001 2 202001 202001 3 202001我在这里缺少什么?谢谢
【问题讨论】:
-
userid来自哪里?它不在您的示例数据中。 -
我改了。我错误地输入了order_id。谢谢