आप हमेशा GROUP BY
. का उपयोग कर सकते हैं / HAVING
IN खंड में क्वेरी। यह काम करता है और अपेक्षाकृत सरल है लेकिन यह विशेष रूप से कुशल नहीं हो सकता है यदि डुप्लिकेट पंक्तियों की संख्या अपेक्षाकृत बड़ी है।
SELECT *
FROM table1
WHERE (name, type_id) IN (SELECT name, type_id
FROM table1
GROUP BY name, type_id
HAVING COUNT(*) > 1)
तालिका में दूसरी बार टकराने से बचने के लिए विश्लेषणात्मक कार्यों का उपयोग करना आम तौर पर अधिक कुशल होगा।
SELECT *
FROM (SELECT id,
name,
type_id,
code,
lat,
long,
count(*) over (partition by name, type_id) cnt
FROM table1)
WHERE cnt > 1
आप डेटा के साथ क्या करने की योजना बना रहे हैं और किसी विशेष पंक्ति के कितने डुप्लिकेट हो सकते हैं, इस पर निर्भर करते हुए, आप table1
में भी शामिल होना चाह सकते हैं डेटा को एक ही पंक्ति में प्राप्त करने के लिए
SELECT a.name,
a.type_id,
a.id,
b.id,
a.code,
b.code,
a.lat,
b.lat,
a.long,
b.long
FROM table1 a
JOIN table1 b ON (a.name = b.name AND
a.type_id = b.type_id AND
a.rowid > b.rowid)