Oracle
 sql >> Database >  >> RDS >> Oracle

Come ottenere il valore SQL più frequente

Il "valore più frequente" in una distribuzione è un concetto distinto nelle statistiche, con un nome tecnico. Si chiama MODE della distribuzione. E Oracle ha il STATS_MODE() funzione per questo. https://docs.oracle.com/cd/B19306_01 /server.102/b14200/functions154.htm

Ad esempio, utilizzando EMP tabella nello standard SCOTT schema, select stats_mode(deptno) from scott.emp restituirà 30 - il numero del reparto con il maggior numero di dipendenti. (30 è il "nome" o numero del reparto, NON è il numero di dipendenti in quel reparto!)

Nel tuo caso:

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

Nota :se due o più hotel sono in parità per "più frequenti", allora STATS_MODE() ne restituirà uno (non deterministico). Se hai bisogno di tutti i valori vincolati, avrai bisogno di una soluzione diversa:un buon esempio è nella documentazione (collegata sopra). Questo è un difetto documentato nella comprensione e nell'implementazione del concetto statistico da parte di Oracle.