मेरे पास ओरेकल डेटाबेस तालिका में पंक्तियां हैं जो दो फ़ील्ड के संयोजन के लिए अद्वितीय होनी चाहिए लेकिन तालिका पर अद्वितीय बाधा स्थापित नहीं की गई है, इसलिए मुझे उन सभी पंक्तियों को खोजने की ज़रूरत है जो स्वयं SQL का उपयोग करके बाधा का उल्लंघन करते हैं। दुर्भाग्य से मेरे कम एसक्यूएल कौशल कार्य तक नहीं हैं।एसक्यूएल: दो क्षेत्रों के आधार पर डुप्लीकेट कैसे ढूंढें?
मेरी तालिका में तीन कॉलम हैं जो प्रासंगिक हैं: entity_id, station_id, और obs_year। प्रत्येक पंक्ति के लिए station_id और obs_year का संयोजन अद्वितीय होना चाहिए, और मैं यह जानना चाहता हूं कि पंक्तियां हैं जो SQL क्वेरी के साथ उन्हें फ़्लश करके इसका उल्लंघन करती हैं।
मैं निम्नलिखित एसक्यूएल (this previous question ने सुझाव दिया) की कोशिश की है, लेकिन यह मेरे लिए काम नहीं करता है (मैं ORA-00918 स्तंभ अस्पष्ट परिभाषित मिल):
SELECT
entity_id, station_id, obs_year
FROM
mytable t1
INNER JOIN (
SELECT entity_id, station_id, obs_year FROM mytable
GROUP BY entity_id, station_id, obs_year HAVING COUNT(*) > 1) dupes
ON
t1.station_id = dupes.station_id AND
t1.obs_year = dupes.obs_year
कोई सुझाव दे सकते हैं मैं गलत क्या कर रही हूं , और/या इसे कैसे हल करें?
का उपयोग करके इस प्रतिक्रिया के लिए बहुत कुछ धन्यवाद। दुर्भाग्यवश जब मैं इसे चलाता हूं तो मुझे "ओआरए -00 9 23: कीवर्ड से नहीं मिला जहां" अपेक्षित "संदेश मिलता है। –
@ जेम्स: अब कोशिश करें – Quassnoi
mssql में इसे काम करने के लिए FROM() paranthesis के पीछे 'x x' (नाम वास्तव में कोई फर्क नहीं पड़ता) डालना पड़ा था। बहुत बढ़िया जवाब! – Mafii