如果两个日期变量之间的差异大于3年,则SAS(proc sql)计数记录数
Uning sas查询数据库的企业指南(一个数据集中的2000万条记录) 我试图使用脚本(proc sql)在表事件记录(使用可变IncidentID)凭借多年Incident_date和录制日期:RECORDED_DATE之间的数量是超过1年如果两个日期变量之间的差异大于3年,则SAS(proc sql)计数记录数
我也尝试导出所有记录更大的地方incident_date - 录制日期:RECORDED_DATE> =3年
表事故数据:
IncidentID Incident_date recorded_date 1001 01/01/2016 01/01/2017 1002 10/12/2015 10/12/2015 1005 01/01/2001 01/01/2005 2007 01/01/1999 07/01/2015 999 2014年5月10日二○一六年十月一十日
PROC SQL;
create table incidentdata as
SELECT incidentID, name, reported_date, Incident_date
from libraryname.Incidents
where intck('year',reported_date, incident_date, 'C') >= 1;
quit;
输出要求:1。 伯爵怎么可能情况在表中录制日期:RECORDED_DATE - incident_date> =1年 2.选择所有录制日期:RECORDED_DATE案件 - incident_date> = 1年
这是目前为止的代码:
请帮助
where intnx('year',date2,-3,'same') >= date1
或
where intck('year',date1, date2, 'C') >= 3
这似乎不起作用,因为我不确定'你'在abovePROC SQL上说什么'C'; SELECT count(distinct incidentID)AS CNT_incidents, where intck('year',Date 2,Date 1,'C')> = 3 FROM Libename..datasetname; QUIT; –
它的工作原理。 “C''应该是”C“。这是'intck'函数的一个参数。这里的问题是你缺乏最基本的SQL知识。 'where'子句出现在'from'子句之后。 – user2877959
另外,如果你想使用'count'这样的聚合函数,那么你需要添加'group by'子句,这并不是你应该计算不同的观察值。如果你用你正在使用的实际代码编辑你的问题,有人可能会帮助你更多。 – david25272
我知道下面将让我的差异年,但如何使用这个在where子句中得到我想要什么?e.g。年= intck( '年', '01jan2009'd,' 01jan2010'd); –
在这个网站上,您需要提供样本数据,期望的输出并向我们展示您已经尝试过的内容。你也可以编辑你的问题来添加更多的信息,而不是评论你自己的问题。 – user2877959