【发布时间】:2022-01-03 22:33:24
【问题描述】:
我有一个数据集,其中包含具有多行的帐户。 我想根据一些过滤条件每个保留一个。 数据集是
Account Model Class Value
1 A 0 1.0
1 B 0 1.0
2 B 0 0.5
3 A 1 0.5
3 A 0 1.0
我想根据这些条件为每个帐户保留一行:
- 如果一个帐户只有一行,则保留它,无论类别和型号。
- 如果一个帐户有多行,则保持该帐户的模型 A 和类 = 1 或模型 A 和类什么的。
预期的输出是
Account Model Class Value
1 A 0 1.0
2 B 0 0.5
3 A 1 0.5
代码在 SAS 中实现。 我的想法是为具有多行的帐户分配一个值,并仅选择满足上述条件的那些帐户。 但是我不知道如何选择只有一行的帐户。 我认为我可以只看一下 max Class,因为它会选择不管 Model(通常 Class 是与 Model A 关联的最高级别)。
【问题讨论】:
-
类 = 1.0 或值 = 1.0?
-
第 1 课。抱歉我的错误。我认为像 max 和 over partition by 这样的东西可能会起作用
-
按你的条件排序,拿第一。在 SAS 中使用数据步骤来获得第一个。在 Teradata 中使用 ROW_NUMBER()。
标签: sas teradata-sql-assistant