SQL Academy · पाठ

UNNEST और एग्रीगेट करना

ऐरे को पंक्तियों में और फिर वापस बदलें।

पाठ 3, कुल 4 में से13 चरण

UNNEST और एग्रीगेट करना, CoddyKit पर SQL Academy का एक निःशुल्क पाठ है। यह 4 में से 3वाँ पाठ है। आप नीचे पूरा पाठ निःशुल्क पढ़ सकते हैं—फिर अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर के साथ ब्राउज़र में इसका व्यावहारिक अभ्यास कर सकते हैं। यह SQL Academy सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। SQL Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

UNNEST क्या है

PostgreSQL आपको एक ही कॉलम के अंदर ऐरे संग्रहीत करने देता है। लेकिन कभी-कभी आपको प्रत्येक तत्व के साथ अलग-अलग काम करना होता है — ऐसे में UNNEST उपयोगी होता है।

UNNEST पंक्तियाँ लौटाने वाला फ़ंक्शन है, जो एक ऐरे को पंक्तियों के समुच्चय में फैलाता है और प्रत्येक तत्व के लिए एक पंक्ति बनाता है। इसे एकत्रीकरण के विपरीत समझें: कई पंक्तियों को एक में समेटने के बजाय, यह एक मान को कई पंक्तियों में फैला देता है।

UNNEST का मूल उदाहरण

UNNEST का सबसे सरल उपयोग किसी ऐरे लिटरल को सीधे देना है। परिणाम-समुच्चय में प्रत्येक तत्व अपनी अलग पंक्ति बन जाता है।

यहाँ हम पूर्णांकों के एक साधारण ऐरे को अलग-अलग पंक्तियों में फैलाते हैं:

SELECT UNNEST(ARRAY[10, 20, 30, 40]) AS value;

पाठ वाले ऐरे के साथ UNNEST

UNNEST किसी भी ऐरे प्रकार के साथ काम करता है, जिसमें पाठ भी शामिल है। यह तब उपयोगी है जब आपके पास टैग, श्रेणियाँ या PostgreSQL ऐरे के रूप में कूटबद्ध अल्पविराम-विभाजित जैसा डेटा रखने वाला कॉलम हो।

SELECT UNNEST(ARRAY['apple', 'banana', 'cherry']) AS fruit;

तालिका के कॉलम से UNNEST

UNNEST की वास्तविक शक्ति तब दिखाई देती है जब आप इसे किसी वास्तविक तालिका के कॉलम पर उपयोग करते हैं। तालिका की प्रत्येक पंक्ति में अलग-अलग लंबाई का ऐरे हो सकता है और UNNEST उन सभी को अलग-अलग पंक्तियों में फैला देता है।

इस उदाहरण में products तालिका में tags नाम का पाठ वाला ऐरे कॉलम है:

CREATE TABLE products (
  id   SERIAL PRIMARY KEY,
  name TEXT,
  tags TEXT[]
);

INSERT INTO products (name, tags) VALUES
  ('Laptop',  ARRAY['electronics', 'computing', 'portable']),
  ('Shirt',   ARRAY['clothing', 'casual']),
  ('Blender', ARRAY['kitchen', 'electronics']);

SELECT name, UNNEST(tags) AS tag
FROM products;

टैग की मौजूदगी गिनना

ऐरे कॉलम को फैलाने के बाद आप परिणामों को अन्य पंक्तियों की तरह मान सकते हैं और एकत्रीकरण फ़ंक्शन लागू कर सकते हैं। यहाँ हम गिनते हैं कि प्रत्येक टैग से कितने उत्पाद जुड़े हैं।

पैटर्न यह है: उपक्वेरी या CTE में UNNEST, फिर फैले हुए मान पर GROUP BY:

SELECT tag, COUNT(*) AS product_count
FROM (
  SELECT UNNEST(tags) AS tag
  FROM products
) AS expanded
GROUP BY tag
ORDER BY product_count DESC;

ORDINALITY के साथ UNNEST

कभी-कभी ऐरे के अंदर किसी तत्व की स्थिति महत्वपूर्ण होती है। PostgreSQL प्रत्येक फैलाए गए तत्व के साथ पंक्ति संख्या जोड़ने के लिए WITH ORDINALITY उपलब्ध कराता है, ताकि आपको ऐरे में उसका मूल सूचकांक (1 से शुरू होने वाला) पता रहे।

SELECT val, pos
FROM UNNEST(ARRAY['first', 'second', 'third']) WITH ORDINALITY AS t(val, pos);

तालिका पर ORDINALITY का उपयोग

जब आप ऐरे में क्रमबद्ध सूचियाँ संग्रहीत करते हैं, तब WITH ORDINALITY विशेष रूप से उपयोगी होता है। उदाहरण के लिए, ऐसी प्लेलिस्ट तालिका जिसमें ट्रैक का क्रम महत्वपूर्ण हो:

CREATE TABLE playlists (
  id     SERIAL PRIMARY KEY,
  title  TEXT,
  tracks TEXT[]
);

INSERT INTO playlists (title, tracks) VALUES
  ('Morning Mix', ARRAY['Song A', 'Song B', 'Song C']);

SELECT p.title, track, position
FROM playlists p,
     UNNEST(p.tracks) WITH ORDINALITY AS t(track, position)
ORDER BY p.id, position;

UNNEST के बाद फ़िल्टर करना

चूँकि UNNEST ऐरे के तत्वों को पंक्तियों में बदल देता है, इसलिए आप उन्हें सामान्य WHERE शर्त से फ़िल्टर कर सकते हैं। इससे ऐरे-समावेशन ऑपरेटर का उपयोग किए बिना उन सभी पंक्तियों को खोजना संभव होता है जिनके ऐरे में कोई विशेष मान मौजूद है।

SELECT DISTINCT name
FROM products,
     UNNEST(tags) AS tag
WHERE tag = 'electronics';

ऐरे में फिर से एकत्रीकरण

UNNEST का उलटा ARRAY_AGG है। पंक्तियों को फैलाने और उन्हें बदलने या फ़िल्टर करने के बाद, आप परिणामों को फिर से एक ऐरे में एकत्र कर सकते हैं। यह चक्रीय पैटर्न — फैलाना, संसाधित करना और फिर से एकत्र करना — PostgreSQL में आम तरीका है।

SELECT ARRAY_AGG(tag ORDER BY tag) AS sorted_tags
FROM (
  SELECT UNNEST(ARRAY['cherry', 'apple', 'banana']) AS tag
) AS t;

सरणी तत्वों से डुप्लिकेट हटाना

UNNEST-समेकन के इस व्यावहारिक चक्र का एक उपयोग सरणी से दोहराए गए तत्वों को हटाना है। सरणी पर UNNEST लागू करें, फिर DISTINCT लगाएँ और अंत में ARRAY_AGG से उन्हें दोबारा एकत्र करें:

SELECT ARRAY_AGG(DISTINCT tag ORDER BY tag) AS unique_tags
FROM UNNEST(ARRAY['sql', 'database', 'sql', 'postgresql', 'database']) AS tag;

कई सरणी स्तंभों को संयोजित करना

आप FROM खंड में एक साथ कई सरणियों पर UNNEST लागू कर सकते हैं। PostgreSQL तत्वों को उनकी स्थिति के आधार पर जोड़े में रखता है। यदि सरणियों की लंबाई अलग-अलग हो, तो छोटी सरणी लंबी सरणी की अतिरिक्त स्थितियों के लिए रिक्त मान देती है।

SELECT key, value
FROM UNNEST(
  ARRAY['name',    'city',      'role'],
  ARRAY['Alice',   'Istanbul',  'DBA']
) AS t(key, value);

ज्ञान जाँच

PostgreSQL में UNNEST और सरणियों के समेकन के बारे में अपनी समझ जाँचिए।

पाठ का पुनरावलोकन

इस पाठ में आपने PostgreSQL के अंतर्निहित फ़ंक्शन का उपयोग करके सरणियों को पंक्तियों में बदलना और फिर वापस सरणियों में बदलना सीखा:

  • UNNEST — सरणी को फैलाकर प्रत्येक तत्व के लिए एक पंक्ति बनाता है और शाब्दिक मानों तथा तालिका स्तंभों, दोनों पर काम करता है।
  • WITH ORDINALITY — प्रत्येक अनपैक किए गए तत्व के साथ उसकी स्थितिगत अनुक्रम संख्या जोड़ता है, जिससे सरणी में उसका मूल क्रम पता चलता है।
  • फ़िल्टर करना — UNNEST लागू करने के बाद आप WHERE का उपयोग सामान्य पंक्तियों की तरह कर सकते हैं।
  • ARRAY_AGG — यह UNNEST का उलटा है; पंक्तियों को फिर से एक सरणी में एकत्र करता है, आवश्यकता होने पर ORDER BY या DISTINCT के साथ।
  • समानांतर UNNEST — FROM खंड में कई सरणियाँ अगल-बगल फैलती हैं और स्थिति के आधार पर जोड़ी जाती हैं।

UNNEST-प्रसंस्करण-पुनःसमेकन के इस पैटर्न में निपुण होने से आप एसक्यूएल की पूरी अभिव्यंजक शक्ति के साथ सरणी डेटा सँभाल सकते हैं।

शुरुआत निःशुल्क

एआई शिक्षक के साथ SQL सीखें — निःशुल्क

अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।

पाठ्यक्रम
46
पाठ
183

अक्सर पूछे जाने वाले प्रश्न

क्या “UNNEST और एग्रीगेट करना” पाठ निःशुल्क है?

हाँ—“UNNEST और एग्रीगेट करना” का पूरा पाठ यहाँ वेब पर निःशुल्क पढ़ा जा सकता है। इंटरैक्टिव अभ्यास (अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर) करने और SQL Academy पाठ्यक्रम का बाकी हिस्सा अनलॉक करने के लिए CoddyKit PRO लें। SQL Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

“UNNEST और एग्रीगेट करना” में मैं क्या सीखूँगा?

ऐरे को पंक्तियों में और फिर वापस बदलें। आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ SQL Academy का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।

क्या SQL Academy शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?

पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर SQL Academy शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 3वाँ पाठ है।

“UNNEST और एग्रीगेट करना” पाठ पूरा करने में कितना समय लगता है?

CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।

क्या मैं इस SQL Academy पाठ में कोड लिख और चला सकता हूँ?

हाँ। हर SQL Academy पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।

इस पाठ्यक्रम के सभी पाठ

  1. ऐरे कॉलम की मूल बातें
  2. ऐरे के भीतर खोजना
  3. UNNEST और एग्रीगेट करना
  4. ऐरे बनाम सामान्यीकृत तालिकाएँ
← SQL Academy पर वापस जाएँ