Sql 如何在Oracle中使用日期汇总表

Sql 如何在Oracle中使用日期汇总表,sql,oracle,Sql,Oracle,我有一张名为“历史”的表格: CREATE TABLE HISTORY (START_DATE DATE, POSITION VARCHAR2(80 BYTE)); 该表的填充方式如下: START_DATE POSITION 15-jun-1983 SUPPLY ATTENDANT 01-abr-1987 SUPPLY HELPER 01-mar-1990 SUPPLY ASSISTANT 01-mai-1991 TECHNICAL SUPLY ASSISTENT 0

我有一张名为“历史”的表格:

CREATE TABLE HISTORY (START_DATE DATE, POSITION  VARCHAR2(80 BYTE));
该表的填充方式如下:

START_DATE    POSITION
15-jun-1983   SUPPLY ATTENDANT
01-abr-1987   SUPPLY HELPER
01-mar-1990   SUPPLY ASSISTANT
01-mai-1991   TECHNICAL SUPLY ASSISTENT
01-abr-1999   TECHNICAL SUPLY ASSISTENT SR
01-dez-1999   SUPPLY TECHNICIAN
01-mai-2001   SUPERVISOR
01-jul-2002   SUPERVISOR
01-jan-2004   SECTOR MANAGER
01-jul-2005   SECTOR MANAGER
01-fev-2006   SECTOR MANAGER
01-jan-2007   SENIOR SUPPLY TECHNICIAN
01-mai-2007   SECTOR MANAGER
01-fev-2008   SENIOR SUPPLY TECHNICIAN
我想做一个查询,将其总结如下:

START_DATE    POSITION
15-jun-1983   SUPPLY ATTENDANT
01-abr-1987   SUPPLY HELPER
01-mar-1990   SUPPLY ASSISTANT
01-mai-1991   TECHNICAL SUPLY ASSISTENT
01-abr-1999   TECHNICAL SUPLY ASSISTENT SR
01-dez-1999   SUPPLY TECHNICIAN
01-mai-2001   SUPERVISOR
01-jan-2004   SECTOR MANAGER
01-jan-2007   SENIOR SUPPLY TECHNICIAN
01-mai-2007   SECTOR MANAGER
01-fev-2008   SENIOR SUPPLY TECHNICIAN
简而言之,我想删除分组位置重复,只保留第一个位置重复。有人知道怎么做吗

提前感谢

我们可以使用LEAD功能来完成

将当前位置与数据库中存储的下一个位置记录按顺序进行比较

WITH my_data AS
  (
    SELECT rownum AS rn,history.* FROM history
  ),
  my_data_ranked AS
  (SELECT START_DATE,
    POSITION,
    rn,
    lead(position,1,0) OVER(order by rn) as lead,
    lag(position,1,0) OVER(order by rn) as lag
  FROM my_data
  )
SELECT * FROM my_data_ranked
where POSITION <> LEAD
ORDER BY rn

在Maheswaran Ravisankar的帮助下,这里是实现结果的查询

WITH NEW_DATASET
     AS (SELECT START_DATE,
                POSITION,
                NVL (LAG (POSITION) OVER (ORDER BY START_DATE), 'NONE')
                    AS PRIOR_POSITION
           FROM HISTORY)
SELECT START_DATE, POSITION
  FROM NEW_DATASET
 WHERE POSITION <> PRIOR_POSITION;
我的兴趣是保持具有最低日期的位置,而不干扰数据集其余部分中相同位置的其他事件。为此,拉格成功了


谢谢大家!

你如何维持秩序?非常感谢你的帮助Maheswaran!!它打开了我的心扉!结果证明,在这种情况下,函数滞后更适合我。@jamesfrj我还试图保持存储数据的顺序。现在,您似乎在按日期查找订单。无论如何,很高兴它帮助了你!