जटिल कैलकुलेशन बनाना

SQL में रिपोर्टिंग

Tyler Pernes

Learning & Development Consultant

एप्रोचेज़

  1. विंडो फंक्शन
  2. लेयर्ड कैलकुलेशन
SQL में रिपोर्टिंग

विंडो फंक्शन

  • टेबल की अन्य पंक्तियों को रेफ़र करता है.
SQL में रिपोर्टिंग

विंडो फंक्शन

  • टेबल की अन्य पंक्तियों को रेफ़र करता है.

SQL में रिपोर्टिंग

विंडो फंक्शन

  • टेबल की अन्य पंक्तियों को रेफ़र करता है.

SQL में रिपोर्टिंग

विंडो फंक्शन सिंटैक्स

SUM(value) OVER (PARTITION BY field ORDER BY field)

SQL में रिपोर्टिंग

विंडो फंक्शन सिंटैक्स

SUM(value) OVER (PARTITION BY field ORDER BY field)

SQL में रिपोर्टिंग

विंडो फंक्शन सिंटैक्स

SUM(value) OVER (PARTITION BY field ORDER BY field)

  • PARTITION BY = कैलकुलेशन का रेंज
  • ORDER BY = कैलकुलेशन चलाते समय पंक्तियों का क्रम
SQL में रिपोर्टिंग

विंडो फंक्शन उदाहरण

कुल ब्रॉन्ज़ मेडल

SELECT 
    country_id, 
    athlete_id, 
    SUM(bronze) OVER () AS total_bronze
FROM summer_games;
+-------------+-------------+---------------+
| country_id  | athlete_id  | total_bronze  |
|-------------|-------------|---------------|
| 11          | 77505       | 141           |
| 11          | 11673       | 141           |
| 14          | 85554       | 141           |
| 14          | 76433       | 141           |
+-------------+-------------+---------------+
SQL में रिपोर्टिंग

विंडो फंक्शन उदाहरण

देशवार ब्रॉन्ज़ मेडल

SELECT 
    country_id, 
    athlete_id, 
    SUM(bronze) OVER (PARTITION BY country_id) AS total_bronze
FROM summer_games
+-------------+-------------+---------------+
| country_id  | athlete_id  | total_bronze  |
|-------------|-------------|---------------|
| 11          | 77505       | 12            |
| 11          | 11673       | 12            |
| 14          | 85554       | 5             |
| 14          | 76433       | 5             |
+-------------+-------------+---------------+
SQL में रिपोर्टिंग

विंडो फंक्शन के प्रकार

  • SUM()
  • AVG()
  • MIN()
  • MAX()
SQL में रिपोर्टिंग

विंडो फंक्शन के प्रकार

  • LAG() और LEAD()

SQL में रिपोर्टिंग

विंडो फंक्शन के प्रकार

  • LAG() और LEAD()

SQL में रिपोर्टिंग

विंडो फंक्शन के प्रकार

  • ROW_NUMBER() और RANK()

SQL में रिपोर्टिंग

एग्रीगेशन पर विंडो फंक्शन

original_table
+----------+-----------+---------+ 
| team_id  | player_id | points  |
|----------|-----------|---------|    
| 1        | 4123      | 3       |
| 1        | 5231      | 6       |
| 2        | 8271      | 5       |
+----------+-----------+---------+
desired_report
+----------+-------------+---------------+ 
| team_id  | team_points | league_points |
|----------|-------------|---------------|    
| 1        | 9           | 43            |
| 2        | 12          | 43            |
| 3        | 22          | 43            |
+----------+-------------+---------------+
SQL में रिपोर्टिंग

एग्रीगेशन पर विंडो फंक्शन

फ़ाइनल क्वेरी

SELECT
    team_id,
    SUM(points) AS team_points,
    SUM(SUM(points)) OVER () AS league_points
FROM original_table
GROUP BY team_id;
SQL में रिपोर्टिंग

एग्रीगेशन पर विंडो फंक्शन

SELECT
    team_id,
    SUM(points) AS team_points,
    SUM(points) OVER () AS league_points
FROM original_table
GROUP BY team_id;
ERROR: points must be an aggregation or appear in a GROUP BY statement.
SQL में रिपोर्टिंग

लेयर्ड कैलकुलेशन

  • मौजूदा एग्रीगेशन पर और एग्रीगेट करें
  • एक सबक्वेरी का लाभ लें
SQL में रिपोर्टिंग

लेयर्ड कैलकुलेशन उदाहरण

स्टेप 1: प्रति देश कुल ब्रॉन्ज़ मेडल

SELECT country_id, SUM(bronze) as bronze_medals
FROM summer_games
GROUP BY country_id;

स्टेप 2: सबक्वेरी में बदलें और मैक्स लें

SELECT MAX(bronze_medals)
FROM
  (SELECT country_id, SUM(bronze) as bronze_medals
  FROM summer_games
  GROUP BY country_id) AS subquery;
SQL में रिपोर्टिंग

जटिल कैलकुलेशन की प्लानिंग

SQL में रिपोर्टिंग

जटिल कैलकुलेशन की प्लानिंग

  • विंडो फंक्शन के लिए ऑर्डरिंग?
  • लेयर्ड कैलकुलेशन के साथ दो एग्रीगेशन?
SQL में रिपोर्टिंग

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

SQL में रिपोर्टिंग

Preparing Video For Download...