Oracle
 sql >> Base de données >  >> RDS >> Oracle

Comment obtenir la valeur SQL la plus fréquente

La "valeur la plus fréquente" dans une distribution est un concept distinct en statistique, avec un nom technique. C'est ce qu'on appelle le MODE de la distribution. Et Oracle a le STATS_MODE() fonction pour cela. https://docs.oracle.com/cd/B19306_01 /server.102/b14200/functions154.htm

Par exemple, en utilisant le EMP table dans la norme SCOTT schema, select stats_mode(deptno) from scott.emp renverra 30 - le numéro du département avec le plus d'employés. (30 est le "nom" ou le numéro du département, ce n'est PAS le nombre d'employés dans ce département !)

Dans votre cas :

select stats_mode(h.name) from (the rest of your query)

Remarque  :si deux hôtels ou plus sont à égalité pour "le plus fréquent", alors STATS_MODE() renverra l'un d'entre eux (non déterministe). Si vous avez besoin de toutes les valeurs liées, vous aurez besoin d'une solution différente - un bon exemple se trouve dans la documentation (liée ci-dessus). Il s'agit d'une faille documentée dans la compréhension et la mise en œuvre du concept statistique par Oracle.