[英]Insert every other row to a Column
如果我们按日期升序组织结果,我有这个表,其中一行是Transaction Date
,第一行是checkIn
,第二行是Checkout
出。
我需要将第二行值传递给另一个名为Checkout
的列。 此表至少有 1000 条记录
您可以使用row_number()
:
select t.*
from (select t.*,
row_number() over (partition by studentid order by transactiondate) as seqnum
from t
) t
where seqnum = 2;
这假定只有studentid
用于标识“第一”和“第二”行。 如果需要更多列,请将它们添加到partition by
子句中。
如果您需要的结帐日期是按原因分组的第二个(最大)日期,并且您想挑出此日期,请尝试:
select
studentID,
reason,
max(transactionDate) as checkoutDate
from student
group by
reason
尝试使用下面的查询
With CteCheckOut as(
Select
ROW_NUMBER() over (Partition by studentID Order by studentID,transactionDate) as Rownumber,
*
From student
)
Select studentID, transactionDate as CheckOutDate
From CteCheckOut
Where Rownumber%2 = 0
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.