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

Last_value विंडो फ़ंक्शन ठीक से काम नहीं करता है

विश्लेषणात्मक कार्यों में आपको विंडो रेंज निर्दिष्ट करने की आवश्यकता होती है। डिफ़ॉल्ट रूप से यह between unbounded preceding and current row . है , जिसे मैं आत्म-व्याख्यात्मक मानता हूं।

मूल रूप से, ऐसा तब होता है जब आप partition by customer_id order by valid_from asc निर्दिष्ट करते हैं :

  1. Oracle वर्तमान पंक्ति के customer id से मेल खाने वाली सभी पंक्तियों को लेता है
  2. यह उन्हें valid_from . द्वारा आरोही क्रम में आदेश देता है
  3. यह न्यूनतम valid_from . से शुरू होने वाली विंडो बनाता है दिनांक, और वर्तमान पंक्ति के valid_from . के साथ समाप्त होता है ।
  4. यह last_value का मूल्यांकन करता है , जो आपकी वर्तमान पंक्ति का valid_from . लौटाता है ।

आपको जो करने की ज़रूरत है वह एक चालू सीमा निर्दिष्ट करना है:

16:53:00 [email protected]> ed
Wrote file S:\spool\sandbox\BUFFER_SYSTEM_38.sql

  1  select last_value(VALID_FROM) OVER (
  2    partition by customer_id
  3    ORDER BY VALID_FROM asc
  4    range between current row and unbounded following
  5  ) rn
  6* from   t
16:53:21 [email protected]> /

RN
---------------------------------------------------------------------------
04-DEC-13 11.07.01.000000 AM
04-DEC-13 11.07.01.000000 AM
04-DEC-13 11.07.01.000000 AM

Elapsed: 00:00:00.01


  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 में स्ट्रिंग को कई पंक्तियों में विभाजित करना

  2. asp.net एप्लिकेशन 11g के लिए oracle इंस्टेंट क्लाइंट स्थापित करने के बाद भी oracle 11g से कनेक्ट नहीं हो रहा है

  3. एआरएम आधारित डेबियन डिवाइस के लिए ओरेकल इंस्टेंट क्लाइंट

  4. सबसे तेज़ OLEDB ORACLE से पढ़ा गया

  5. ओरेकल में बल्क इंसर्ट के साथ टेक्स्ट फाइल डालें