फ़ेचिंग

PostgreSQL Summary Stats और Window Functions

Michel Semaan

Data Scientist

चार फंक्शन

Relative

  • LAG(column, n) मौजूदा पंक्ति से n पंक्तियाँ पहले वाली पंक्ति का column मान लौटाता है
  • LEAD(column, n) मौजूदा पंक्ति से n पंक्तियाँ बाद वाली पंक्ति का column मान लौटाता है

Absolute

  • FIRST_VALUE(column) टेबल या पार्टिशन का पहला मान देता है
  • LAST_VALUE(column) टेबल या पार्टिशन का आखिरी मान देता है
PostgreSQL Summary Stats और Window Functions

LEAD

क्वेरी

WITH Hosts AS (
  SELECT DISTINCT Year, City
  FROM Summer_Medals)

SELECT
  Year, City,
  LEAD(City, 1) OVER (ORDER BY Year ASC)
    AS Next_City,
  LEAD(City, 2) OVER (ORDER BY Year ASC)
    AS After_Next_City
FROM Hosts
ORDER BY Year ASC;

परिणाम

| Year | City      | Next_City | After_Next_City |
|------|-----------|-----------|-----------------|
| 1896 | Athens    | Paris     | St Louis        |
| 1900 | Paris     | St Louis  | London          |
| 1904 | St Louis  | London    | Stockholm       |
| 1908 | London    | Stockholm | Antwerp         |
| 1912 | Stockholm | Antwerp   | Paris           |
| ...  | ...       | ...       | ...             |
PostgreSQL Summary Stats और Window Functions

FIRST_VALUE और LAST_VALUE

क्वेरी

SELECT
  Year, City,
  FIRST_VALUE(City) OVER
    (ORDER BY Year ASC) AS First_City,
  LAST_VALUE(City) OVER (
   ORDER BY Year ASC
   RANGE BETWEEN
     UNBOUNDED PRECEDING AND
     UNBOUNDED FOLLOWING
  ) AS Last_City
FROM Hosts
ORDER BY Year ASC;

परिणाम

| Year | City      | First_City | Last_City       |
|------|-----------|------------|-----------------|
| 1896 | Athens    | Athens     | London          |
| 1900 | Paris     | Athens     | London          |
| 1904 | St Louis  | Athens     | London          |
| 1908 | London    | Athens     | London          |
| 1912 | Stockholm | Athens     | London          |
  • डिफॉल्ट रूप से, एक विंडो टेबल या पार्टिशन की शुरुआत से चालू पंक्ति पर खत्म होती है
  • RANGE BETWEEN ... क्लॉज़ विंडो को टेबल या पार्टिशन के अंत तक बढ़ा देता है
PostgreSQL Summary Stats और Window Functions

LEAD के साथ पार्टिशनिंग

  • LEAD(Champion, 1) बिना PARTITION BY
| Year | Event        | Champion | Next_Champion |
|------|--------------|----------|---------------|
| 2004 | Discus Throw | LTU      | EST           |
| 2008 | Discus Throw | EST      | GER           |
| 2012 | Discus Throw | GER      | SWE           |
| 2004 | Triple Jump  | SWE      | POR           |
| 2008 | Triple Jump  | POR      | USA           |
| 2012 | Triple Jump  | USA      | null          |
  • LEAD(Champion, 1) PARTITION BY Event के साथ
| Year | Event        | Champion | Next_Champion |
|------|--------------|----------|---------------|
| 2004 | Discus Throw | LTU      | EST           |
| 2008 | Discus Throw | EST      | GER           |
| 2012 | Discus Throw | GER      | null          |
| 2004 | Triple Jump  | SWE      | POR           |
| 2008 | Triple Jump  | POR      | USA           |
| 2012 | Triple Jump  | USA      | null          |
PostgreSQL Summary Stats और Window Functions

FIRST_VALUE के साथ पार्टिशनिंग

  • FIRST_VALUE(Champion) बिना PARTITION BY Event
| Year | Event        | Champion | First_Champion |
|------|--------------|----------|----------------|
| 2004 | Discus Throw | LTU      | LTU            |
| 2008 | Discus Throw | EST      | LTU            |
| 2012 | Discus Throw | GER      | LTU            |
| 2004 | Triple Jump  | SWE      | LTU            |
| 2008 | Triple Jump  | POR      | LTU            |
| 2012 | Triple Jump  | USA      | LTU            |
  • FIRST_VALUE(Champion) PARTITION BY Event के साथ
| Year | Event        | Champion | First_Champion |
|------|--------------|----------|----------------|
| 2004 | Discus Throw | LTU      | LTU            |
| 2008 | Discus Throw | EST      | LTU            |
| 2012 | Discus Throw | GER      | LTU            |
| 2004 | Triple Jump  | SWE      | SWE            |
| 2008 | Triple Jump  | POR      | SWE            |
| 2012 | Triple Jump  | USA      | SWE            |
PostgreSQL Summary Stats और Window Functions

अभ्यास करते हैं!

PostgreSQL Summary Stats और Window Functions

Preparing Video For Download...