Analytic functions

SQL Server में डेटा मैनिपुलेट करने के लिए फ़ंक्शंस

Ana Voicu

Data Engineer

FIRST_VALUE()

FIRST_VALUE(numeric_expression) 
    OVER ([PARTITION BY column] ORDER BY column ROW_or_RANGE frame)
  • क्रमबद्ध सेट का पहला मान लौटाता है.

OVER क्लॉज़ के घटक

Component Status Description
PARTITION by column optional परिणाम सेट को पार्टिशन में बाँटें
ORDER BY column mandatory परिणाम सेट को क्रम में रखें
ROW_or_RANGE frame optional पार्टिशन की सीमाएँ निर्धारित करें
SQL Server में डेटा मैनिपुलेट करने के लिए फ़ंक्शंस

LAST_VALUE()

LAST_VALUE(numeric_expression) 
    OVER ([PARTITION BY column] ORDER BY column ROW_or_RANGE frame)
  • क्रमबद्ध सेट का आखिरी मान लौटाता है.
SQL Server में डेटा मैनिपुलेट करने के लिए फ़ंक्शंस

Partition limits

RANGE BETWEEN start_boundary AND end_boundary
ROWS BETWEEN start_boundary AND end_boundary
Boundary Description
UNBOUNDED PRECEDING पार्टिशन की पहली पंक्ति
UNBOUNDED FOLLOWING पार्टिशन की आखिरी पंक्ति
CURRENT ROW वर्तमान पंक्ति
PRECEDING पिछली पंक्ति
FOLLOWING अगली पंक्ति
SQL Server में डेटा मैनिपुलेट करने के लिए फ़ंक्शंस

FIRST_VALUE() और LAST_VALUE() उदाहरण

SELECT
    first_name + ' ' + last_name AS name,
    gender,
    total_votes AS votes,    
    FIRST_VALUE(total_votes) 
    OVER (PARTITION BY gender ORDER BY total_votes) AS min_votes,
    LAST_VALUE(total_votes) 
        OVER (PARTITION BY gender ORDER BY total_votes 
                ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) AS max_votes
FROM voters;
| name            | gender | votes | min_votes | max_votes |
|-----------------|--------|-------|-----------|-----------|
| Michele Suarez  | F      | 20    | 20        | 189       |
| ...             | ...    | ...   | 20        | 189       |
| Marcus Jenkins  | M      | 16    | 16        | 182       |
| Micheal Vazquez | M      | 18    | 16        | 182       |
SQL Server में डेटा मैनिपुलेट करने के लिए फ़ंक्शंस

LAG() और LEAD()

LAG(numeric_expression) OVER ([PARTITION BY column] ORDER BY column)

  • उसी परिणाम सेट में पिछली पंक्ति का डेटा एक्सेस करता है.

LEAD(numeric_expression) OVER ([PARTITION BY column] ORDER BY column)

  • उसी परिणाम सेट में अगली पंक्ति का डेटा एक्सेस करता है.
SQL Server में डेटा मैनिपुलेट करने के लिए फ़ंक्शंस

LAG() और LEAD() उदाहरण

SELECT 
    broad_bean_origin AS bean_origin,
    rating,
    cocoa_percent,
    LAG(cocoa_percent) OVER(ORDER BY rating ) AS percent_lower_rating,
    LEAD(cocoa_percent) OVER(ORDER BY rating ) AS percent_higher_rating
FROM ratings
WHERE company = 'Felchlin'
ORDER BY rating ASC;
| bean_origin        | rating | cocoa_percent | percent_lower_rating | percent_higher_rating |
|--------------------|--------|---------------|----------------------|-----------------------|
| Grenada            | 3      | 0.58          | NULL                 | 0.62                  |
| Dominican Republic | 3.75   | 0.62          | 0.58                 | 0.64                  |
| Madagascar         | 3.75   | 0.64          | 0.74                 | 0.65                  |
| Venezuela          | 4      | 0.65          | 0.74                 | NULL                  |
SQL Server में डेटा मैनिपुलेट करने के लिए फ़ंक्शंस

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

SQL Server में डेटा मैनिपुलेट करने के लिए फ़ंक्शंस

Preparing Video For Download...