SQL для Вікіпроектів/Кількість сторінок

Кількість сторінок

ред.

Запит у Quarry

 SELECT 
   count(*) 
 FROM 
   ukwikibooks_p.page

У Вікіпідручнику запит видає цифру 2773, тоді як статистика самого сайту 3596. Кількість сторінок — доволі технічна, а не змістовна статистика і схоже рахується дещо по різному. Оскільки сторінок взагалі у Вікіпідручнику небагато, то відмінність вийшла досить значна.

Виведемо кількість сторінок у Вікіпедії: (Запит у Quarry)

 SELECT 
   count(*)
 FROM 
   ukwiki_p.page

За нашим запитом — 1 986 487, за статистикою сайту — 1 986 749. Тут уже відмінність всього на 1 986 749 - 1 986 487 = 262 сторінки, або лише 0.01%. Тобто за великої кількості сторінок відмінність між різними способами практично непомітна.

Кількість статей

ред.

Тепер виведемо кількість статей.

Спочатку зрозуміємо, що таке стаття, і чим вона відрізняється від сторінки. У довідці зі статистичних службових слів пише "Кількість сторінок в основному просторі назв."

Проте за посиланням в основному просторі назв дається точніше визначення:

  1. Be in the main namespace, or a defined content namespace // Бути в основному просторі назв, або у визначеному просторі імен для вмісту
  2. Not be a redirect page // не бути сторінкою перенаправлення
  3. Contain at least one internal link // Містити принаймні одне внутрішнє посилання

Manual:Pagelinks_table

(Запит у Quarry)

USE ukwiki_p;

SELECT 
  count(*) 
FROM 
  page
WHERE
  page_namespace = 0 AND             -- в основному просторі назв
  page_is_redirect = 0 AND           -- не бути сторінка перенаправлення
  EXISTS (                           -- має принаймні одне внутрішнє посилання
      SELECT 1 FROM pagelinks 
  	  WHERE 
           pagelinks.pl_from = page.page_id AND 
           pagelinks.pl_from_namespace = page.page_namespace 
    )