Oracle
 sql >> डेटाबेस >  >> RDS >> Oracle

Oracle को पंक्ति मिलती है जहाँ स्तंभ मान बदल जाता है

आप LAG() . का उपयोग कर सकते हैं पिछली पंक्ति को देखने और इसकी तुलना करने के लिए विंडो फ़ंक्शन। अगर आपका डेटा है:

create table t2 (
  id number(6),
  cctr varchar2(10),
  date1 date
);

insert into t2 (id, cctr, date1) values (1, '2C', date '2018-08-01');
insert into t2 (id, cctr, date1) values (2, '2C', date '2018-07-02');
insert into t2 (id, cctr, date1) values (3, '2C', date '2017-05-04');
insert into t2 (id, cctr, date1) values (4, '2B', date '2017-03-02');
insert into t2 (id, cctr, date1) values (5, '2B', date '2017-01-01');
insert into t2 (id, cctr, date1) values (6, 'UC', date '2016-11-23');

तब यह प्रश्न होगा:

select * from t2 where date1 = (
  select max(date1)
    from (
    select 
      id, date1, cctr, lag(cctr) over(order by date1 desc) as prev
      from t2
    ) x  
    where prev is not null and cctr <> prev
);

परिणाम:

ID       CCTR        DATE1    
-------  ----------  -------------------
4        2B          2017-03-02 00:00:00  


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Oracle PLSQL ASCIISTR के समकक्ष (N'str')

  2. Oracle डेटाबेस में एक अस्थायी चर घोषित करना

  3. स्तंभ मान लंबाई प्राप्त करें, स्तंभ मान की अधिकतम लंबाई नहीं

  4. Oracle में POWER () फंक्शन

  5. रोलिंग दैनिक विशिष्ट गणना