Ir al contenido

Usuario:Pilaf/Consultas SQL

De Wikipedia, la enciclopedia libre

Esta es una lista de algunas consultas SQL útiles que he creado.

Cantidad de ediciones en la semana[editar]

Esta consulta devuelve una tabla con la cantidad de ediciones en los últimos 7 días catalogadas por espacio de nombre. El primer resultado de la consulta corresponde a los artículos comunes. Adicionalmente calcula el promedio de ediciones diarias en las semana.

SELECT
  rc_namespace as espacio_nombre,
  COUNT(rc_namespace) as ediciones,
  COUNT(rc_namespace) / 7 as promedio
WHERE TO_DAYS(NOW()) - TO_DAYS(rc_timestamp) <= 7
AND rc_new=1
AND rc_minor=1
GROUP BY rc_namespace

Para ser realmente útil esta consulta debe ser ejecutada al final de una semana y comienzo de la siguiente.

Modificando el número de días (7 para una semana), pueden obtenerse resultados para cualquier otro período de tiempo (días, meses). Sin embargo, la tabla de cambios recientes parece tener un límite de capacidad, por lo que conserva las ediciones de apenas un par de semanas atrás (esto probablemente dependa de la cantidad de ediciones, pero no estoy seguro, intentaré averiguarlo).

Las líneas tachadas son opcionales y pueden ser usadas para obtener las cantidades de artículos nuevos o ediciones menores. En ambos casos '1' significa verdadero y '0' falso. También pueden ser combinadas para obtener artículos nuevos y de edición menor, artículos ya existentes y de edición mayor o cualquier otra combinación (no son muchas :-P).

Usuarios más activos[editar]

La siguiente consulta crea una tabla de usuarios ordenados por cantidad de ediciones en los últimos 7 días.

SELECT rc_user_text as usuario, COUNT(rc_user_text) as ediciones
FROM recentchanges
WHERE TO_DAYS(NOW()) - TO_DAYS(rc_timestamp) <= 7
GROUP BY rc_user_text
ORDER BY ediciones DESC

Artículos borrados[editar]

Esta consulta trae simplemente la cantidad de artículos borrados en los últimos 7 días. Tal vez sirva para llevar cuenta del crecimiento del vandalismo en Wikipedia, ya que este número debería ser proporcional a él.

SELECT COUNT(rc_title) as borrados
FROM recentchanges
WHERE rc_title = 'Registro_de_borrados'
AND rc_namespace=4
AND TO_DAYS(NOW()) - TO_DAYS(rc_timestamp) <= 7
GROUP BY rc_title

Esta consulta puede ser fácilmente modificada para obtener el número de ediciones sobre cualquier otra página. Nótese que el espacio de nombre (rc_namespace) debe ser cambiado también por su valor correspondiente.