ويكيبيديا:إحصاءات العام



«بدأت ويكيبيديا العربية في عام 2003 بـ 14 مقالًا فقط، واليوم تحتوي على أكثر من 1٬248٬329 مقال!.»

توفر إحصاءات العام أرقامًا دقيقة عن ويكيبيديا بشكل عام خلال سنة كاملة، مثل عدد التعديلات، وعدد الصفحات المضافة، وعدد المستخدمين المسجلين... إلخ. الهدف من هذه الإحصاءات هو إعطاء نظرة شامة حول تطور ويكيبيديا خلال الأعوام، ومقارنة أدائها كل سنة كاملة.

عدد المقالات الجديدة لكل سنة

نمو المقالات في ويكيبيديا العربية منذ نشأتها

قائمة الإحصاءات

عدل

قائمة الاستعلامات

عدل

تُستخراج البيانات الخاصة بالأعوام عن طريق استعلامات لغة SQL، ويُمكن تنفيذها بواسطة quarry. عند تنفيذ أحد الاستعلامات التالية؛ ينبغي الانتباه إلى تحديد تاريخ بداية العام، وتاريخ نهاية العام. فمثلًا؛ لو اردتَ تنفيذ استعلام ما خلال عام 2019، فينبغي تحديد تاريخ البداية، وهو: 20190101000000، ثم تحديد تاريخ النهاية وهو: 20191231235959. أيضًا، لاحظ وجود التعبير limit متبوعًا برقم في الاستعلامات التالية، وهذا يعني أن القيم الناتجة ستكون محددة بالرقم المتبوع؛ فمثلًا لو كانت القيمة limit 10، سيُظهر الاستعلام 10 صفوف فقط. يُمكنك تغيير القيمة إذا أردت.

  • عدد المستخدمين المُسجلين:
SELECT COUNT(user_name)
FROM user 
WHERE user_registration BETWEEN 20190101000000 AND 20191231235959;
  • أكثر 10 المستخدمين حسب عدد التعديلات.

يُمكن استخدام هذا الاستعلام لمعرفة أكثر بوت حسب عدد التعديلات أيضًا بإزالة السطر الخاص بإخفاء البوتات.

SET @rank=0;
SELECT @rank:=@rank+1 AS "المركز", s.*
FROM (
  SELECT CONCAT("[[مستخدم:",rev_user_text,"|",rev_user_text,"]]") AS "المستخدم", COUNT(rev_user_text) AS "عدد التعديلات"
FROM revision 
WHERE rev_timestamp BETWEEN 20190101000000 AND 20181231235959
AND rev_user_text NOT LIKE ucase ("%BOT") COLLATE utf8_general_ci AND rev_user_text NOT LIKE ("%New_user_message")
GROUP BY rev_user_text
ORDER BY COUNT(rev_user_text) DESC
LIMIT 10) s;
  • عدد المقالات التي أُنشئت:
SELECT  COUNT(*) AS "عدد المقالات"
FROM revision r
join page p on p.page_id=r.rev_page
WHERE p.page_namespace=0 and p.page_is_redirect=0 and r.rev_timestamp between 20190101000000 and 20191231235959 and r.rev_parent_id=0
ORDER BY COUNT(*) DESC
  LIMIT 1;
  • عدد القوالب التي أُنشئت:
SELECT  COUNT(*) AS "عدد القوالب"
FROM revision r
join page p on p.page_id=r.rev_page
WHERE p.page_namespace=10 and p.page_is_redirect=0 and r.rev_timestamp between 20190101000000 and 20191231235959 and r.rev_parent_id=0
ORDER BY COUNT(*) DESC
  LIMIT 1;
  • عدد التصانيف التي أُنشئت:
SELECT  COUNT(*) AS "عدد التصانيف"
FROM revision r
join page p on p.page_id=r.rev_page
WHERE p.page_namespace=14 and p.page_is_redirect=0 and r.rev_timestamp between 20190101000000 and 20191231235959 and r.rev_parent_id=0
ORDER BY COUNT(*) DESC
  LIMIT 1;
  • عدد الصور التي رُفعت:
 select COUNT(*) from logging where log_timestamp BETWEEN 20190101000000 AND 20191231235959 and log_action = "upload"
  • عدد الزيارات:

يدويًا من هذه الصفحة.

  • عدد التعديلات:
select count(*) from revision where rev_timestamp between 20190101000000 AND 20191231235959;
  • عدد عمليات النقل:
 select COUNT(*) from logging where log_timestamp BETWEEN 20190101000000 AND 20191231235959 and log_action = "move"
  • عدد عمليات الحذف:
 select COUNT(*) from logging where log_timestamp BETWEEN 20190101000000 AND 20191231235959 and log_action = "delete"
  • عدد عمليات الحماية:
 select COUNT(*) from logging where log_timestamp BETWEEN 20190101000000 AND 20191231235959 and log_action = "protect"
  • عدد عمليات المنع:
 select COUNT(*) from logging where log_timestamp BETWEEN 20190101000000 AND 20191231235959 and log_action = "block"
  • عدد عمليات منح الصلاحيات:
 select COUNT(*) from logging where log_timestamp BETWEEN 20190101000000 AND 20191231235959 and log_action = "rights"
  • عدد عمليات الشكر:
 select COUNT(*) from logging where log_timestamp BETWEEN 20190101000000 AND 20191231235959 and log_action = "thanks"
  • تعديلات المجهولين:
select count(*) from revision where rev_user_text regexp '^([0-1]?[0-9]{1,2}|2[0-4][0-9]|25[0-5])\\.([0-1]?[0-9]{1,2}|2[0-4][0-9]|25[0-5])\\.([0-1]?[0-9]{1,2}|2[0-4][0-9]|25[0-5])\\.([0-1]?[0-9]{1,2}|2[0-4][0-9]|25[0-5])$' and rev_timestamp between 20190101000000 AND 20191231235959;
  • أكثر مقالات تعديلًا:
SELECT
  page_namespace,
  page_title,
  COUNT(*)
FROM revision
JOIN page
ON page_id = rev_page
WHERE rev_timestamp BETWEEN 20190101000000 AND 20191231235959
GROUP BY page_namespace, page_title
ORDER BY COUNT(*) DESC, page_title ASC
LIMIT 10;
  • أكثر مقالات زيارة:

يدويًا من هذه الصفحة.

  • أكثر مستخدم إضافة للموسوعة:
SELECT CONCAT("[[مستخدم:",user_name,"|",user_name,"]]") AS user_name, SUM(CAST(rev.rev_len as signed)-CAST(parent.rev_len as signed)) AS byte_count, COUNT(rev.rev_id) as edit_count
FROM user
JOIN revision rev
ON user_id = rev.rev_user
JOIN revision parent
ON rev.rev_parent_id = parent.rev_id
JOIN page
ON page_id = parent.rev_page
WHERE page_namespace = 0
and rev.rev_comment not like "%رجوع%"
and rev.rev_comment not like "%استرجاع%"
AND rev.rev_timestamp BETWEEN 20190101000000 AND 20191231235959
AND parent.rev_timestamp BETWEEN 20190101000000 AND 20191231235959
GROUP BY user_name
having byte_count > 0
ORDER BY byte_count DESC
LIMIT 10;
  • أكثر مستخدم نقلًا:
select CONCAT('[[مستخدم:',user_name,'|',user_name,']]'), COUNT(*)
from logging
inner join user
on user.user_id = logging.log_user
where log_timestamp BETWEEN 20190101000000 AND 20191231235959
and log_action IN ("move"/*, "block", "protect", "rights"*/)
group by logging.log_user
having COUNT(*)>1
ORDER BY COUNT(*) DESC
LIMIT 5;
  • أكثر مستخدم شكرًا:
select CONCAT('[[مستخدم:',user_name,'|',user_name,']]'), COUNT(*)
from logging
inner join user
on user.user_id = logging.log_user
where log_timestamp BETWEEN 20190101000000 AND 20191231235959
and log_action IN ("thanks"/*, "block", "protect", "rights"*/)
group by logging.log_user
having COUNT(*)>1
ORDER BY COUNT(*) DESC
LIMIT 5;
  • أكثر مستخدم إنشاء للمقالات:
SELECT rev_user_text, count(rev_user_text)
FROM revision
INNER JOIN page ON rev_page = page_id
WHERE page_namespace = 0
AND rev_parent_id = 0
and rev_timestamp BETWEEN 20190101000000 AND 20191231235959
AND page.page_is_redirect = 0
group by rev_user_text
ORDER BY count(rev_user_text) desc;
  • أكثر مستخدم مراجعة للتعديلات:
select CONCAT('[[مستخدم:',user_name,'|',user_name,']]'), COUNT(*)
from logging
inner join user
on user.user_id = logging.log_user
where log_timestamp BETWEEN 20190101000000 AND 20191231235959
and log_action = "approve"
and log_namespace = 0
group by logging.log_user
having COUNT(*)>1
ORDER BY COUNT(*) DESC
LIMIT 1;
  • أكثر مستخدم مراجعة للصفحات الجديدة:
select CONCAT('[[مستخدم:',user_name,'|',user_name,']]'), COUNT(*)
from logging
inner join user
on user.user_id = logging.log_user
where log_timestamp BETWEEN 20190101000000 AND 20191231235959
and log_action = "approve-i"
and log_namespace = 0
group by logging.log_user
having COUNT(*)>1
ORDER BY COUNT(*) DESC
LIMIT 1;
  • أكثر الإداريين نشاطًا:
select CONCAT('[[مستخدم:',user_name,'|',user_name,']]'), COUNT(*)
from logging
inner join user
on user.user_id = logging.log_user
where log_timestamp BETWEEN 20190101000000 AND 20191231235959
and log_type in ("block", "protect", "delete", "rights")
group by logging.log_user
having COUNT(*)>1
ORDER BY COUNT(*) DESC
LIMIT 1;
  • أكثر الإداريين حذفًا:
select CONCAT('[[مستخدم:',user_name,'|',user_name,']]'), COUNT(*)
from logging
inner join user
on user.user_id = logging.log_user
where log_timestamp BETWEEN 20190101000000 AND 20191231235959
and log_type in ("delete"")
group by logging.log_user
having COUNT(*)>1
ORDER BY COUNT(*) DESC
LIMIT 1;
  • أكثر الإداريين منعًا:
select CONCAT('[[مستخدم:',user_name,'|',user_name,']]'), COUNT(*)
from logging
inner join user
on user.user_id = logging.log_user
where log_timestamp BETWEEN 20190101000000 AND 20191231235959
and log_type in ("block")
group by logging.log_user
having COUNT(*)>1
ORDER BY COUNT(*) DESC
LIMIT 1;
  • أكثر الإداريين حماية:
select CONCAT('[[مستخدم:',user_name,'|',user_name,']]'), COUNT(*)
from logging
inner join user
on user.user_id = logging.log_user
where log_timestamp BETWEEN 20190101000000 AND 20191231235959
and log_type in ("protect")
group by logging.log_user
having COUNT(*)>1
ORDER BY COUNT(*) DESC
LIMIT 1;
  • أكثر الإداريين منحًا للصلاحيات:
select CONCAT('[[مستخدم:',user_name,'|',user_name,']]'), COUNT(*)
from logging
inner join user
on user.user_id = logging.log_user
where log_timestamp BETWEEN 20190101000000 AND 20191231235959
and log_type in ("rights")
group by logging.log_user
having COUNT(*)>1
ORDER BY COUNT(*) DESC
LIMIT 1;