sql - 获取组中的第 n 行 - SAS/SQL

标签 sql sas

任何提示我如何从组中获取第 n 个元素。 SAS 4GL 是首选,SQL 也行。

从下面的交易列表中,我想为每个客户提取对应于第二个(按日期)交易的行。

输入:

input table

输出:

output

上例中的客户C只有一笔交易,因此输出表中没有与他对应的行。

提前致谢!

最佳答案

使用 SAS 可以通过多种方式完成此操作。最简单的是对数据集进行排序,然后使用数据步骤输出您想要的记录。

proc sort data=have;
by Customer TransactionDate;
run;

data want(drop=counter);
set have;
by Customer TransactionDate;
retain counter;
if first.Customer then counter=1;
else counter+1;
if counter=2 then output;
run;

关于sql - 获取组中的第 n 行 - SAS/SQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50329696/

相关文章:

error-handling - SAS: "ERROR: Rename of temporary member for WORK.XXXX.DATA failed"

sql-server - WHERE 子句运算符需要兼容的变量

mysql - SQL SELECT 后跟 UPDATE

c# - 两个对象上的 Linq 完全外连接

mysql - 连接表时一对多连接

SAS - 如何将 libname 作为参数传递给宏

date - 由于数据类型不同,对 SAS 日期宏的引用不起作用

mysql - SQL Join ON 子句对别名的有效引用

mysql - 删除重复行(MySQL 5.7)

sas - 在 SAS 中删除一系列变量