مساعدة:استعلام - ويكيبيديا
سابقا كان استخراج القوائم الإحصائية أمرا يحتاج خبرة ومعرفة كافية بلغة إس كيو إل أو باقي اللغات الذي تتعلق بقواعد البيانات كما كان يجب أن يتم استخراج القوائم عن طريق التولابز وقبلها عن طريق التول سرفر. رغم أنه لا زال بعض المستخدمين المحترفين يفضلون استخراج القوائم عن طريق التولابز لكن بفضل تطوير أداة Quarry أصبح الأمر متاحا وسهلا للمبتدئين أيضا. رغم أنه لا زالت كتابة الاستعلام تحتاج خبرة كافية لكن بإمكان المستخدمين استخدام الاستعلامات المتاحة هنا أو الطلب من باقي الزملاء الذين لديهم خبرة كافية أن يكتبوا الاستعلام.
استخدام
[عدل]على المستخدم أن يذهب إلى هذا العنوان ومن ثم يضغط على Login with Wikimedia. بعد ذلك تنفتح أمامه نافذة وتطلب منه تأييد الدخول باستخدام بروتوكول OAuth. يجب هنا على المستخدم أن يختار Allow وهكذا يتم تسجيل الدخول دون الحاجة إلى إدخال كلمة السر. بعد الذهاب إلى New Query تنفتح صفحة ذات مساحة سوداء أمام المستخدم. يجب عليه كتابة كود الاستعلام أو لصق الكود الذي نسخه من مكان آخر في هذه المساحة السوداء ومن ثم Submit Query. لقد انتهى الأمر. كل ما هو على المستخدم أن يصبر ليحصل على القائمة المطلوبة.
ملاحظات
[عدل]كل نسخة من ويكيبديا أو المشاريع الشقيقة لديها اسم خاص ويجب على المستخدم أن يكتبه في استعلامه ليحصل على القائمة الصحيحة. على سبيل المثال اسم ويكيبديا العربية هو arwiki_p ويجب على المستخدم أن يكتب في بداية الاستعلام USE arwiki_p;. هذه الملاحظة هامة جدا خاصة عندما يتم نسخ الإستعلامات الموجودة هنا يجب على المستخدم أن لا ينسى أن يستبدل الاسم الموجود أعلى الاستعلامات باسم ويكيبديا العربية.
نماذج
[عدل]هناك الكثير من الإحصاءات موجودة في تصنيف:إحصاءات ويكيبيديا. الكثير من هذه الإحصاءات تحتوي على كود القائمة في صفحات نقاشها. هناك عدد من الإستعلامات يوجد أيضا في الأسفل.
المقالات
[عدل]المقالات التي توجد كلمة خاصة في عنوانها
[عدل]قائمة 500 مقالة يحتوى عنوانها على كلمة كتاب
USE arwiki_p; SELECT page_title FROM page WHERE page_namespace = 0 AND page_is_redirect = 0 AND page_title LIKE "%_كتاب_%" LIMIT 500;
مقالات بدون وصلات داخلية
[عدل]USE arwiki_p; SELECT page_title FROM page LEFT JOIN pagelinks ON pl_from = page_id WHERE page_namespace = 0 AND page_is_redirect = 0 AND pl_namespace IS NULL GROUP BY page_id;
مقالات موجودة في ويكيبديا الإنجليزية لكنها ليست موجودة في العربية
[عدل]نظرا لعدد الكبير تم تحديد الاستعلام على 500 مقالة فقط. يجب تشغيل هذا الكود على ويكيبديا الإنجليزية وليس العربية.
USE enwiki_p; SELECT CONCAT ( ":", page_title, "]]||", count(*), "||", page_len ) FROM langlinks INNER JOIN page ON ll_from = page_id WHERE page_namespace = 0 AND page_is_redirect = 0 AND NOT EXISTS ( SELECT * FROM langlinks AS t WHERE t.ll_lang = "ar" AND t.ll_from = langlinks.ll_from ) GROUP BY ll_from ORDER BY count(*) DESC, page_title limit 500;
مقالات أفلام موجودة في ويكيبديا الإنجليزية وليست في العربية
[عدل]يتم استخدام القالب Infobox_film لتحديد مقالات الأفلام ويمكن من خلال تغييره تحديد أي نوع آخر من المقالات.
USE enwiki_p; SELECT /*SLOW OK*/ page_title FROM page WHERE page_id IN ( SELECT tl_from FROM templatelinks WHERE tl_title = "Infobox_film" AND tl_namespace = 10 AND tl_from IN ( SELECT ll_from FROM langlinks WHERE ll_from GROUP BY ll_from HAVING COUNT(*) > 20 ) AND tl_from NOT IN ( SELECT ll_from FROM langlinks WHERE ll_lang = "ar" ) )limit 500;
مقالات غیرمصنفة
[عدل]USE arwiki_p; SELECT page_title FROM page LEFT JOIN categorylinks ON cl_from = page_id WHERE page_namespace = 0 AND page_is_redirect = 0 AND ISNULL(cl_from);
مقالات لديها أقل من ثلاثة تصانيف
[عدل]USE arwiki_p; select page_title from page where page_namespace = 0 and page_is_redirect = 0 and page_id in (select cl_from from categorylinks group by cl_from having count(*) < 3) limit 10;
مقالات تتضمن قالب حماية لكنها ليست محمية بشكل دائم
[عدل]USE arwiki_p; SELECT page_title FROM page WHERE page_id IN ( SELECT tl_from FROM templatelinks WHERE tl_title = "محمية") AND page_id NOT IN ( SELECT pr_page FROM page_restrictions WHERE pr_expiry LIKE 'infinity') AND page_namespace = 0 ORDER BY page_title ;
تعديلات المستخدمون
[عدل]تعديلات المستخدم الفلاني حسب التاريخ
[عدل]USE arwiki_p; SELECT /*SLOW OK */ DATE ( CONCAT ( YEAR(rev_timestamp), "-", MONTH(rev_timestamp), "-", DAY(rev_timestamp) ) ) AS DAY, COUNT(rev_timestamp) AS revisions FROM revision WHERE rev_user_text = 'Reza1615' GROUP BY DAY;
سجلات الإداري في فترة محددة
[عدل]USE arwiki_p; SELECT log_user_text AS المستخدم, log_type AS الفعل, COUNT(log_timestamp) AS العدد FROM logging WHERE log_timestamp BETWEEN 20160101000000 AND 20160731235959 AND log_user_text = "Elph" GROUP BY (log_type) ORDER BY COUNT(log_timestamp) ;
مقالات المستخدم الفلاني حسب التاريخ
[عدل]USE arwiki_p; SELECT /*SLOW OK */ page_title, DATE ( CONCAT ( YEAR(rev_timestamp), "-", MONTH(rev_timestamp), "-", DAY(rev_timestamp) ) ) AS DAY FROM revision INNER JOIN page ON rev_page = page_id WHERE page_namespace = 0 AND rev_user_text = 'Reza1615' AND rev_parent_id = 0 AND page.page_is_redirect = 0 GROUP BY DAY; ORDER BY rev_timestamp;
تعديلات المستخدم حسب التاريخ والنطاق
[عدل]USE arwiki_p; SELECT rev_user_text AS المستخدم, page_namespace AS النطاق, COUNT(rev_timestamp) AS عدد_التعديلات FROM revision JOIN page ON rev_page = page_id WHERE rev_timestamp BETWEEN 20160101000000 AND 20160731235959 AND rev_user_text = "Elph" GROUP BY (page_namespace) ORDER BY COUNT(rev_timestamp) ;
قائمة المستخدمون حسب التعديلات (دون البوتات)
[عدل]USE arwiki_p; SELECT user_name, user_editcount FROM user WHERE user_name NOT IN (SELECT user_name FROM user_groups INNER JOIN user ON user_id = ug_user WHERE ug_group = 'bot') ORDER BY user_editcount DESC LIMIT 500;