الانتقال إلى المحتوى

حذف السجلات المتكررة والمتشابه تماما


RDBMS

Recommended Posts

السلام عليكم ورحمة الله وبركاته

لو سمحتم ممكن طريقة عمل استعلام يقوم بحذف السجلات المتكررة المتشابهة

اثناء بحثي للمنتدى وجدت الرابط التالي

http://www.araboug.org/ib/index.php?showtopic=13768&st=0&p=67542&hl=+ط­ط°ظپ%20+ط§ظ„ط³ط¬ظ„ط§طھ%20+ط§ظ„ظ…ظƒط±ط±ط©&fromsearch=1entry67542
الا انه اثناء تجربتي لبعض الاستعلامات فانه يقوم بحذف سجلات اكثر من عدد السجلات المتكررة

فلو سمحتم ممكن بطريقة عاجلة استعلام يمكنني من حذف السجلات المتكررة والمتشابه تماماجزاكم الله خيرا


مع خالص التحية

رابط هذا التعليق
شارك

الاخ الكريم
اطلعت على الينك الموجود ووجدت به المطلوب زى ما انت محتاج
يا ترى ايه اللى مش شغال معاك نساعدك فيه
شكرا
احمد

رابط هذا التعليق
شارك


الاخ الكريم
اطلعت على الينك الموجود ووجدت به المطلوب زى ما انت محتاج
يا ترى ايه اللى مش شغال معاك نساعدك فيه
شكرا
احمد



بالبداية اشكرك اخي الكريم ع الرد السريع وبارك الله فيكم

بخصوص الموضوع السابق جربت اكثر من استعلام موجود ولكن نتيجة السجلات المحذوفة تكون اكثر من عدد السجلات المكررة عندي من الاساس

فلو تفضلتم ترشدوني الى اي من الاستعلامات المذكورة تكون اكثر دقة

جزاكم الله خيرا
رابط هذا التعليق
شارك

السلام عليكم

لو تفهم الطريقة رح تعملها لحالك

اقولك كيف

اول شي اعمل select تجيب السجلات المتشابه حسب الاعمدة اللي انت تحددها

مثال

نفرض انه عندي جدول اسمه table1 وفي الاعمدة التالية وهي مجال البحث ( التأكد من انها غير مكررة )
test1,test2,test3,test4

والآن الـ select اللي تحدد انه يوجد في تكرار


select count(*), test1,test2,test3,test4 from table1
group by test1,test2,test3,test4
having count(*) >1




هذه الجملة تجلب لك البيانات المتكررة فقط

الان يمكنك تنفيذ عملية الحذف كالتالي




delete from table1 
where test1 in 

(
select count(*), test1,test2,test3,test4 from table1
group by test1,test2,test3,test4
having count(*) >1

)

رابط هذا التعليق
شارك


السلام عليكم

لو تفهم الطريقة رح تعملها لحالك

اقولك كيف

اول شي اعمل select تجيب السجلات المتشابه حسب الاعمدة اللي انت تحددها

مثال

نفرض انه عندي جدول اسمه table1 وفي الاعمدة التالية وهي مجال البحث ( التأكد من انها غير مكررة )
test1,test2,test3,test4

والآن الـ select اللي تحدد انه يوجد في تكرار


select count(*), test1,test2,test3,test4 from table1
group by test1,test2,test3,test4
having count(*) >1




هذه الجملة تجلب لك البيانات المتكررة فقط

الان يمكنك تنفيذ عملية الحذف كالتالي




delete from table1 
where test1 in 

(
select count(*), test1,test2,test3,test4 from table1
group by test1,test2,test3,test4
having count(*) >1

)





في البداية جزاكم الله خيرا والله يوفقك انت واولادك وزوجتك وسائر المسلمين


ثاني استاذي انا جربت هالستيتميت لعمود واحد وظهرت وياي اشكالية

ttoo many values-ora913

بيه مشكلة بعدد الاعمدة مع اني اخترت عمود واحد فقط

جزاكم الله خيرا

)
رابط هذا التعليق
شارك

اخي العزيز


اعتذر عن الخطأ وهو كالتالي


في جملة الاستعلام الثانية يجب تحديد نفس عدد الاعمدة في جملة الحذف ويصبح الكود كما يلي


delete from table1
where test1 in
(
select test1 from table1
group by test1,test2,test3,test4
having count(*) >1
)

تم تعديل بواسطة jadquraan
رابط هذا التعليق
شارك

  • بعد 3 أسابيع...

Hi,
try this code that delete duplicated records except one record of them

DELETE FROM table1
 	WHERE ROWID IN (
          	SELECT rwid
            	FROM (SELECT ROWID rwid,
                         	ROW_NUMBER () OVER (PARTITION BY test1, test2, test3)
                                                                      	rn
                    	FROM table1)
           	WHERE rn > 1)



which table1 is Table name,
test1, test2 ,test3 is the matched table data that you want to delete redundant of them.

تم تعديل بواسطة mah6326955
رابط هذا التعليق
شارك

Hi,
You can use another solution that doesn't use analytical functions



DELETE FROM table1
 	WHERE ROWID IN (
          	SELECT ROWID
            	FROM table1 t
           	WHERE EXISTS (
                    	SELECT 1
                      	FROM table1
                     	WHERE test1 = t.test1
                       	AND test2 = t.test2
                       	AND test3 = t.test3
                       	AND ROWID > t.ROWID));

رابط هذا التعليق
شارك

  • بعد 5 سنة...

انا عايز احذف البيانات المتكررة فى القاعدة دة الجدول متكرر فية بيانات نفس الشخص من رقم 1 الى 12 لكن بكود 1 ومن رقم 13 الى 15 بس بكود 2 انا عايز احذف البيانات كلها للشخص ودة متكرر كثير فى الجدول 

https://drive.google.com/open?id=0B1PdtC7dd5B7WHdrN3ZhVm5uQ1U

رابط هذا التعليق
شارك

انضم إلى المناقشة

يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.

زائر
أضف رد على هذا الموضوع...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   تمت استعادة المحتوى السابق الخاص بك.   مسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

جاري التحميل
×
×
  • أضف...

برجاء الإنتباه

بإستخدامك للموقع فأنت تتعهد بالموافقة على هذه البنود: سياسة الخصوصية