مساعدة:استعلام
سابقا كان استخراج القوائم الإحصائية أمرا يحتاج خبرة ومعرفة كافية بلغة إس كيو إل أو باقي اللغات الذي تتعلق بقواعد البيانات كما كان يجب أن يتم استخراج القوائم عن طريق التولابز وقبلها عن طريق التول سرفر. رغم أنه لا زال بعض المستخدمين المحترفين يفضلون استخراج القوائم عن طريق التولابز لكن بفضل تطوير أداة 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;