使用红移。我有一个具有以下字段的表:需要创建一个在日期前填写值的表格
Column: Type:
department | varchar
employee_ID | varchar
event | varchar
date | date
和只是有一个字段,并列出所有日期的日期表。 每个部门都有几个部门有员工。 “事件”字段有两个可能的值:JOIN或LEAVE。加入记录是他们加入公司/部门的日期,并且LEAVE记录是他们离开公司/部门的日期。它看起来像这样:
department employee_id event date
marketing 001 JOIN 6/17/2017
marketing 002 JOIN 6/19/2017
marketing 002 LEAVE 6/20/2017
marketing 001 LEAVE 6/22/2017
我想使已经每天上市(再次我有所有日期以及表)表以及何时使用它们的值1和0的值当他们不是全体员工时。这应该是这样的:
date department employee_id employed
6/17/2017 marketing 001 1
6/18/2017 marketing 001 1
6/19/2017 marketing 001 1
6/19/2017 marketing 002 1
6/20/2017 marketing 001 1
6/20/2017 marketing 002 1
6/21/2017 marketing 001 1
6/22/2017 marketing 001 1
想我可能需要创建具有开始日期和同一行中离开日期一个新表?因为我可以使用case语句和分区来获取第一个和最后一个日期,但不知道该从哪里去......也许是一个理货表?该查询可能是这样,但仍难道不得到期望的结果:
select
department,
employee_id,
CASE WHEN ROW_NUMBER() OVER (PARTITION BY employee_id ORDER BY date ASC) = 1 THEN date
ELSE NULL
END AS join_date,
CASE WHEN ROW_NUMBER() OVER (PARTITION BY employee_id ORDER BY date DESC) = 1 THEN date
ELSE NULL
END AS leave_date
from table1
即时通讯使用redshift – Berra2k