एक डेटाबेस में 2 क्षेत्रों के लिए एसक्यूएल अलग


84

क्या आप डेटाबेस तालिका में 2 अलग-अलग क्षेत्रों का अलग संयोजन प्राप्त कर सकते हैं? यदि हां, तो आप SQL उदाहरण प्रदान कर सकते हैं।

जवाबों:


128

कैसे के बारे में बस:

select distinct c1, c2 from t

या

select c1, c2, count(*)
from t
group by c1, c2

डेटा के आधार पर, समूह अलग
नोइजर

5
Operand should contain 1 column(s)त्रुटि देखने वालों के लिए , आपकी समस्या यह है कि आप शायद कर रहे हैं select distinct(c1, c2) from tऔर आपको यहां कोष्ठक की अनुमति नहीं है। इसी तरह मैं यहां पहुंचा।
BookOfGreg

16

यदि आप केवल दो फ़ील्ड से अलग मान चाहते हैं, तो उनके साथ अन्य फ़ील्ड लौटाएँ, तो अन्य फ़ील्ड्स पर उनके (योग, न्यूनतम, अधिकतम, आदि) पर किसी प्रकार का एकत्रीकरण होना चाहिए, और आपके द्वारा इच्छित दो कॉलम दिखाई देने चाहिए खंड द्वारा समूह। अन्यथा, यह वैसे ही है जैसे डेकर कहते हैं।


7

आप एसक्यूएल के नीचे दो कॉलम के उपयोग से परिणाम भिन्न प्राप्त कर सकते हैं:

SELECT COUNT(*) FROM (SELECT DISTINCT c1, c2 FROM [TableEntity]) TE

5

यदि आप अभी भी केवल एक कॉलम के अनुसार समूह बनाना चाहते हैं (जैसा कि मैं चाहता था) आप क्वेरी को घोंसला कर सकते हैं:

select c1, count(*) from (select distinct c1, c2 from t) group by c1

3

मेरे बेवकूफ विचार साझा करें:

हो सकता है कि मैं केवल c1 पर अलग-अलग चुन सकता हूँ, लेकिन c2 पर नहीं, इसलिए वाक्य-विन्यास हो सकता है select ([distinct] col)+जहाँ distinctप्रत्येक स्तंभ के लिए एक क्वालीफ़ायर हो।

लेकिन विचार के बाद, मुझे लगता है कि केवल एक स्तंभ पर विशिष्ट बकवास है । निम्नलिखित संबंध लें:

   | A | B
__________
  1| 1 | 2
  2| 1 | 1

यदि हम select (distinct A), B, तो इसके लिए क्या उचित Bहै A = 1?

इस प्रकार, distinctएक के लिए एक क्वालीफायर है statement

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.