Desde hace tiempo deseo determinar cuales son los artículos menos leídos del blog. Simplemente por curiosidad. Aunque si comparo únicamente la cantidad de hits (visitas) de cada artículo no obtengo un resultado fiable, ya que los artículos más nuevos aparecen listados como los menos leídos. Esto se debe a que tienen pocos días online (ha pasado poco tiempo desde su publicación). Cuanto más tiempo tenga online un artículo, más visitas acumula. Por lo tanto, para cada artículo, lo mejor es contabilizar la cantidad de visitas dividido la cantidad de días que lleva publicado, lo que daría efectivamente la cantidad promedio de visitas por día.

La tabla de artículos de la base de datos MySQL posee una columna "published", que guarda la fecha de publicación de cada artículo, y una columna "hits", que guarda la cantidad de visitas a cada artículo. Por lo tanto, utilizando una consulta SQL, deseo obtener una columna que contabilice la cantidad de hits dividido la cantidad de días online. Por supuesto no tengo una columna que guarde la cantidad de días que cada artículo lleva online, lo que necesito hacer es restar a la fecha actual la fecha de publicación, y contar la cantidad de días.

Afortunadamente MySQL cuenta con la función TO_DAYS() la cual, dada una fecha, retorna la cantidad de días desde el año 0. Entonces, si convierto la fecha actual a cantidad de días desde el año 0, y luego le resto la cantidad de días desde el año 0 de la fecha de publicación, obtendré la cantidad de días que cada artículo lleva publicado. El resto es fácil.

En síntesis, la consulta SQL queda así:


SELECT
    title as 'Artículo',
    published as 'Publicado',
    hits as 'Hits totales',
    to_days(now()) - to_days(published) as 'Días online',
    hits/(to_days(now()) - to_days(published)) as Hits_por_dia

FROM
    articles as 'Artículos'

WHERE
    hits/(to_days(now()) - to_days(published)) <= 2

ORDER BY Hits_por_dia asc;

Finalmente he agregado la cláusula WHERE para quedarme sólo con los artículos que tienen dos o menos visitas por día, y he ordenado los resultados de menor a mayor (según el promedio de visitas por día) con la cláusula ORDER BY.

Estos son los artículos del blog que tienen en promedio menos de dos visitas por día:

Artículo Publicado Hits totales Días online Hits por día
Rompiendo X2012-05-16 699 712 0.9817
Macros en OpenOffice.org2012-02-15 816 803 1.0162
Obtener secciones de cada línea  de un archivo utilizando 'cut'2012-08-15 701 621 1.1288
Cómo instalar impresoras HP en Slackware 13.12012-02-10 954 808 1.1807
Configurando una red inalámbrica hogareña2012-02-18 967 800 1.2088
Cómo prevenir que yum actualice un paquete2012-07-05 816 662 1.2326
Tips Slackware 13.12012-02-17 1004 801 1.2534
Instalar driver NVIDIA en Ubuntu 10.042012-04-25 968 733 1.3206
Resolver error "egrep: module: No such file or directory" en logwatch2013-06-03 445 329 1.3526
Renombrar múltiples archivos (2)2012-08-03 861 633 1.3602
Ocultar iconos de disco del escritorio en GNOME2012-04-26 1005 732 1.3730
Cómo determinar la velocidad de un enlace2012-11-05 753 539 1.3970
Monitoreo de integridad de sistemas de archivos utilizando AIDE2012-12-27 695 487 1.4271
Construir nombres de variable en PHP2012-07-10 942 657 1.4338
Baobab: herramienta de análisis de espacio en disco2012-07-12 940 655 1.4351
Cómo mejorar el contraste de tus fotos con GIMP2013-05-13 505 350 1.4429
Usando Google Translate como Web proxy2012-02-24 1155 794 1.4547
Servidor Web Apache sobre IPv62012-02-11 1176 807 1.4572
Convertir video a formato avi utilizando mencoder2012-03-09 1146 780 1.4692
Cómo extraer archivos RAR2012-10-28 808 547 1.4771
"source file could not be read" en Firefox2012-08-29 913 607 1.5041
Cómo elegir una distribución GNU/Linux2012-02-08 1222 810 1.5086
Modificar UUID a particiones ext2/etx3 y NTFS2012-04-10 1138 748 1.5214
Cómo arreglar los filtros en Gmail2012-10-02 872 573 1.5218
¿Dude dónde están mis fotos?2013-04-26 565 367 1.5395
Proxy chaining... o cómo ocultar tu trasero2012-02-24 1236 794 1.5567
Renombrar múltiples archivos + documentación perl2012-03-31 1181 758 1.5580
Cómo unir archivos PDF2013-04-25 579 368 1.5734
Cargar módulo dentro de un artículo en Joomla!2012-04-25 1160 733 1.5825
236 troyanos en el disco C:\2012-02-23 1277 795 1.6063
Cómo cambiar la dirección MAC2013-06-28 495 304 1.6283
Compilar fuentes Java online2012-12-110 820 503 1.6302
Cómo ripear CDs de audio a mp3 en GNU/Linux2012-09-19 959 586 1.6365
Presentación del Software Libre y ventajas de su adopción en la industria2013-06-24 507 308 1.6461
Qué es el "stolen time"2012-10-18 927 557 1.6643
Obtener una dirección IP a partir de una dirección MAC2012-02-16 1336 802 1.6658
Buscar archivos por nombre2012-04-23 1240 735 1.6871
Contar cantidad de elementos de un directorio2012-09-30 978 575 1.7009
Mostrar todos los mensajes de error de PHP2012-04-25 1247 733 1.7012
Montando particiones virtuales: "get into the dark depths of disk storage"2012-04-09 1280 749 1.7089
Enviar mensajes de error a Apache desde scripts PHP2012-02-25 1359 793 1.7137
Emanaciones acústicas de teclado2014-01-09 187 109 1.7156
Cómo instalar Java en Slackware2014-03-13 79 46 1.7174
Cómo instalar Joomla! en español2014-03-06 92 53 1.7358
Grabación de video del escritorio en alta calidad2012-11-06 936 538 1.7398
DuckDuckGo2013-05-21 595 342 1.7398
Generar y descargar un backup de mi sitio desde DirectAdmin2013-10-09 350 201 1.7413
Sumate a "La hora de programar"2013-12-09 245 140 1.7500
Números verdaderamente aleatorios2013-10-15 342 195 1.7538
GIMP Tip: ¿cómo recordar las preferencias de herramientas?2014-02-19 121 68 1.7794
Registrar dominios .tk gratis2012-08-27 1084 609 1.7800
Cómo crear imágenes sepia utilizando GIMP2013-05-01 649 362 1.7928
Discriminar logs de Apache en logwatch según VirtualHost2012-08-03 1140 633 1.8009
Interactuar con un servidor de correo POP mediante telnet/netcat2014-03-10 89 49 1.8163
Cómo permitir sudo2012-06-27 1232 670 1.8388
Configurar proxy en yum2012-06-22 1248 675 1.8489
Desenredando la telaraña2014-01-07 206 111 1.8559
Encender "Num Lock" por defecto en el teclado en KDE 42012-05-19 1318 709 1.8590
Chuleta de nmap2013-01-14 874 469 1.8635
Cómo clonar y reproducir una sesión bash2013-02-05 834 447 1.8658
Solucionar error: possibly undefined macro: AC_PROG_LIBTOOL2013-10-17 362 193 1.8756
net2ftp - Cliente FTP Web2012-08-27 1146 609 1.8818
KVM: recuperar hosts suspendidos que fallan al renudar2013-01-21 872 462 1.8874
Diagnosticar switches Cisco2012-03-30 1433 759 1.8880
Cómo crear archivos ZIP partidos2013-11-30 283 149 1.8993
Cómo detener el firewall en Red Hat2012-08-01 1209 635 1.9039
¿Cómo crear un fondo linuxero para tus presentaciones?2013-09-11 439 229 1.9170
Crear y montar imágenes ISO2012-12-11 967 503 1.9225
Time drift extremo en Windows XP virtualizado con KVM2012-11-13 1021 531 1.9228
Autenticar usuarios MySQL utilizando SSL2012-03-02 1532 787 1.9466
¿Por qué utilizar HTTPS en lugar de HTTP?2013-07-08 573 294 1.9490
Cómo "destripar" una ruta a un nombre de archivo en Linux2013-10-04 403 206 1.9563
Iron: alternativa a Google Chrome2012-11-25 1016 519 1.9576
Cómo instalar dig en Red Hat/Fedora/CentOS2013-10-03 406 207 1.9614
Cómo renovar certificados SSL2013-12-11 273 138 1.9783
Cómo habilitar Python scripting en Apache2013-11-20 318 159 2.0000

¡Espero que les haya gustado!


Tal vez pueda interesarte


Compartí este artículo