Présentation du problème

Un article récent a cherché à déterminer le nombre le plus populaire dans les titres de Hacker News. L'auteur a utilisé la base de données publique de ClickHouse pour analyser les titres des articles.

Architecture de la requête

La requête initiale utilisait une expression régulière pour extraire les nombres des titres :

SELECT num, count() AS c FROM ( SELECT arrayJoin(extractAll(title, '\d+')) AS num FROM hackernews_history WHERE type = 'story' AND title != '' ) GROUP BY num ORDER BY c DESC LIMIT 10
Cependant, cette approche présentait des limites, car elle traitait chaque séquence de chiffres comme un nombre distinct, ce qui n'est pas toujours le cas.

Limites et améliorations

Une deuxième requête a été élaborée pour tenir compte des nombres entiers et décimaux, ainsi que des années :

SELECT num, count() AS c FROM ( SELECT replaceAll( arrayJoin(extractAll(title, '\b\d{1,3}(?:,\d{3})+\b|\b\d+(?:\.\d+)?\b')), ',', '') AS num FROM hackernews_history WHERE type = 'story' AND title != '' ) WHERE toUInt64OrZero(num) NOT BETWEEN 1900 AND 2030 GROUP BY num ORDER BY c DESC LIMIT 10
Cette approche a permis d'obtenir des résultats plus précis.

Analyse des résultats

Les résultats ont montré que les petits nombres dominent les titres de Hacker News, en particulier les nombres 1, 2 et 3. Cela peut s'expliquer par plusieurs facteurs, tels que les listes de type « 5 choses à savoir », les numéros de version des logiciels et l'utilisation de nombres ronds comme seuils et classements. L'analyse a également révélé que des événements externes, tels que la pandémie de COVID-19 et le lancement de modèles d'IA, peuvent influencer la popularité de certains nombres.