के बीच मतभेदों को समझना मेरे असाइनमेंट ने मुझे यह जानने के लिए कहा कि "प्रत्येक तारीख के लिए कितने चालान लिखे गए हैं?"क्यूब और रोलअप
मैं थोड़ा फंस गया था और मदद के लिए मेरे प्रोफेसर से पूछा। उसने मुझे एक प्रश्न ईमेल किया जो सवाल का जवाब देगा, "प्रत्येक प्रकार और संस्करण के कितने स्टोव बनाए गए हैं? चुनौती के लिए लेकिन कोई अतिरिक्त अंक नहीं, स्टोव की कुल संख्या शामिल करें।"
SELECT STOVE.Type + STOVE.Version AS 'Type+Version'
, COUNT(*) AS 'The Count'
FROM STOVE
GROUP BY STOVE.Type + STOVE.Version WITH ROLLUP;
तो, मुझे लगता है कि क्वेरी फेरबदल जब तक यह मेरी जरूरतों को पूरा:
इस क्वेरी उसने मुझे भेजा था। यही वह है जिसके साथ मैं आया:
SELECT InvoiceDt
, COUNT(InvoiceNbr) AS 'Number of Invoices'
FROM INVOICE
GROUP BY InvoiceDt WITH ROLLUP
ORDER BY InvoiceDt ASC;
और यह निम्नलिखित परिणाम लौटा जो मैं चाहता था।
वैसे भी, मैंने रोलअप क्लॉज पर पढ़ने का फैसला किया और Microsoft से एक लेख के साथ शुरू किया। कहा जाता है कि रोलअप खंड घन खंड के समान था लेकिन वह यह निम्नलिखित तरीके से घन खंड से प्रतिष्ठित किया गया था:
- घन एक परिणाम सेट है कि चयनित स्तंभ में मान के सभी संयोजनों के लिए समुच्चय से पता चलता उत्पन्न करता है।
- रोलअप एक परिणाम सेट उत्पन्न करता है जो चयनित कॉलम में मानों के पदानुक्रम के लिए समेकित दिखाता है।
तो, मैंने यह देखने के लिए कि क्या होगा, CUBE के साथ मेरी क्वेरी में रोलअप को प्रतिस्थापित करने का निर्णय लिया। उन्होंने एक ही परिणाम उत्पन्न किए। मुझे लगता है कि वह है जहां मैं भ्रमित हो रहा हूँ।
ऐसा लगता है कि यदि आप यहां मौजूद क्वेरी के प्रकार का उपयोग कर रहे हैं, तो दो खंडों के बीच कोई व्यावहारिक अंतर नहीं है। क्या वह सही है? या, क्या मैं कुछ समझ नहीं रहा हूँ? मैंने सोचा था, जब मैंने माइक्रोसॉफ्ट आलेख पढ़ना समाप्त कर दिया था, तो मेरे परिणाम CUBE खंड का उपयोग करके अलग होना चाहिए था।
दिलचस्प पाने के लिए। मुझे आश्चर्य है कि क्यों डिजाइनरों ने सिर्फ एक नहीं चुना और यह कैसे व्यवहार करेगा इसके लिए एक अतिरिक्त विशेषता param जोड़ें। मूल रूप से एक ही चीज के लिए अलग-अलग नामों को टॉव करना, लेकिन थोड़ा अलग मूर्खतापूर्ण है। – user2326106