मुझे पूरा यकीन है कि तालिका में डुप्लिकेट कॉलम मानों वाली पंक्तियाँ हैं:
SELECT
TenancyReferralKey,
FromDate,
ToDate,
ToDate_Value,
ReferralID,
ReferralFor,
ReferralStatus
FROM dm.Dim_TenancyReferral
WHERE ReferralID IN ('1138', '1940', '1946')
ORDER BY ReferralID
और मैं डुप्लिकेट ReferralID
के साथ पंक्तियों की संख्या गिनने की कोशिश कर रहा हूं:
SELECT
TenancyReferralKey,
FromDate,
ToDate,
ToDate_Value,
ReferralID,
ReferralFor,
ReferralStatus,
COUNT(*) [Occurrences]
FROM dm.Dim_TenancyReferral
GROUP BY
TenancyReferralKey,
FromDate,
ToDate,
ToDate_Value,
ReferralID,
ReferralFor,
ReferralStatus
HAVING COUNT(*) > 1
लेकिन खाली परिणाम सेट हो रहा है।
आपकी सहायता के लिए धन्यवाद।
2 जवाब
आप कई गैर-अद्वितीय स्तंभों (TenancyReferralKey
, FromDate
, ToDate
, ToDate_Value
) के आधार पर समूह बना रहे हैं। यदि आप उन्हें हटा देते हैं, तो आपको वे डुप्लीकेट प्राप्त होंगे जो आप के बाद हैं उदा।
SELECT
ReferralID,
ReferralFor,
ReferralStatus,
COUNT(*) [Occurrences]
FROM dm.Dim_TenancyReferral
GROUP BY
ReferralID,
ReferralFor,
ReferralStatus
HAVING COUNT(*) > 1
अपनी क्वेरी में COUNT
कथन संपादित करें। COUNT(*) [Occurrences]
, GROUP BY
स्टेटमेंट में सभी कॉलमों के आधार पर समूहबद्ध होने पर टेबल में पंक्तियों की संख्या गिनता है। इसलिए प्रत्येक पंक्ति का अपना मान सेट होता है (ऐसे कोई मामले नहीं हैं जहां संपूर्ण रिकॉर्ड डुप्लिकेट है)। प्रयत्न
WITH cte AS (
SELECT
TenancyReferralKey,
FromDate,
ToDate,
ToDate_Value,
ReferralID,
ReferralFor,
ReferralStatus,
COUNT(*) OVER (PARTITION BY ReferralID) AS Occurences
FROM dm.Dim_TenancyReferral
)
SELECT
*
FROM
cte
WHERE
Occurences > 0
;
संबंधित सवाल
नए सवाल
sql
संरचित क्वेरी भाषा (एसक्यूएल) डेटाबेस को क्वेरी करने के लिए एक भाषा है। प्रश्नों में कोड उदाहरण, तालिका संरचना, नमूना डेटा और DBMS कार्यान्वयन के लिए एक टैग (जैसे MySQL, PostgreSQL, Oracle, MS SQL Server, IBM DB2, आदि) का उपयोग किया जाना चाहिए। यदि आपका प्रश्न केवल एक विशिष्ट DBMS (विशिष्ट एक्सटेंशन / सुविधाओं का उपयोग करता है) से संबंधित है, तो इसके बजाय उस DBMS के टैग का उपयोग करें। एसक्यूएल के साथ टैग किए गए सवालों के जवाब में आईएसओ / आईईसी मानक एसक्यूएल का उपयोग करना चाहिए।