sql >> Base de Datos >  >> RDS >> Oracle

Cómo obtener el valor SQL más frecuente

El "valor que ocurre con mayor frecuencia" en una distribución es un concepto distinto en estadística, con un nombre técnico. Se llama el MODO de la distribución. Y Oracle tiene el STATS_MODE() función para ello. https://docs.oracle.com/cd/B19306_01 /server.102/b14200/functions154.htm

Por ejemplo, usando el EMP tabla en el estándar SCOTT esquema, select stats_mode(deptno) from scott.emp devolverá 30 - el número del departamento con más empleados. (30 es el "nombre" o número del departamento, ¡NO es el número de empleados en ese departamento!)

En su caso:

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

Nota :si dos o más hoteles están empatados como "más frecuentes", entonces STATS_MODE() devolverá uno de ellos (no determinista). Si necesita todos los valores vinculados, necesitará una solución diferente:un buen ejemplo está en la documentación (enlazado arriba). Esta es una falla documentada en la comprensión e implementación del concepto estadístico por parte de Oracle.