sas - 在 SAS proc SQL 中重新创建 Tableau 函数已修复
问题描述
我正在努力将 Tableau 中执行的计算转移到基础 SAS 查询中执行,并且我很难重新创建 Tableau 详细信息级别函数 FIXED。下面是一个例子: { FIXED [ID_Field], [Group]: MAX([Value_Field]) } 表格计算是在每个 Group 中为每个人的 ID_Field 查找 Value_Field 的 MAX
我尝试使用子查询来复制它,所以我的查询看起来和操作是这样的
Proc SQL; Create table XYZ.Tableau_Calcs AS
SELECT
Value Field
,ID_Field
,(Select MAX(Value_Field)
From XYX.Original_Calcs
group by ID_Field, Group) as SAS_Calc
,Group
,Date
,Flag
From XYX.Original_Calcs
但是,我收到一条错误消息“错误:子查询评估为不止一行。” 显然这意味着它生产的不止一条生产线
有谁知道如何解决这个错误?这是一些与我在工作中处理的数据具有相同结构的数据。
值字段 | ID_字段 | 团体 | 日期 | 旗帜 |
---|---|---|---|---|
56 | 25193T4010 | H5 | 2018 年 10 月 31 日 | 1 |
56 | 25193T4010 | H5 | 2019 年 1 月 28 日 | 1 |
38 | 25193T4010 | N9 | 2019 年 2 月 9 日 | 0 |
38 | 73437H0904 | E3 | 2017 年 7 月 6 日 | 1 |
38 | 73437H0904 | E3 | 2017 年 3 月 14 日 | 1 |
48 | 73437H0904 | H5 | 2018 年 8 月 14 日 | 1 |
48 | 73437H0904 | H5 | 2018 年 10 月 15 日 | 1 |
66 | 91641V2912 | H5 | 2018 年 10 月 1 日 | 0 |
66 | 91641V2912 | H5 | 2019 年 11 月 1 日 | 1 |
98 | 91641V2912 | N9 | 2019 年 3 月 1 日 | 1 |
98 | 91641V2912 | N9 | 2019 年 3 月 1 日 | 1 |
解决方案
PROC SQL 将让您计算聚合函数并保留详细的观察结果。它将自动将汇总值重新合并到该组的所有详细观察中。
data have;
input value_field id_field :$10. group $ date :mmddyy. flag;
format date yymmdd10.;
cards;
56 25193T4010 H5 10/31/2018 1
56 25193T4010 H5 1/28/2019 1
38 25193T4010 N9 2/9/2019 0
38 73437H0904 E3 7/6/2017 1
38 73437H0904 E3 3/14/2017 1
48 73437H0904 H5 8/14/2018 1
48 73437H0904 H5 10/15/2018 1
66 91641V2912 H5 10/1/2018 0
66 91641V2912 H5 11/1/2019 1
98 91641V2912 N9 3/1/2019 1
98 91641V2912 N9 3/1/2019 1
;
proc sql;
create table want as
select
id_field
, group
, max(value_field) as sas_calc
, value_field
, date
, flag
from have
group by id_field, group
;
quit;
请注意,对于您的样本数据,新的 SAS_CALC 变量与每次观察时的当前 VALUE_FIELD 完全相同。
推荐阅读
- python - 可以将单个 gdb 安装配置为与 python 2 和 python 3 一起使用吗?
- angular - 关于异步函数的问题以及我应该如何正确同步运行它
- audio - 如何在同一个 Alexa 意图函数中添加两个以上的音频(标签)文件?
- powershell - Foreach 循环在 powershell office365 中获取部门名称
- sql - 无法编写简单的插入查询 postgresql
- python - 如何从另一个文件夹读取数据文件而不在 python 中给出完整路径?
- typescript - 在 NGRX 选择器的上下文中,如何创建一个选择器,该选择器将返回一组对象,其中您为这些对象提供了一个 id 列表
- docker - Traefik 和我的世界
- html - Flexbox 增加 div 以占用剩余高度
- python - 如何自动进行项目ID编号?