Oracle
 sql >> Datenbank >  >> RDS >> Oracle

So erhalten Sie den häufigsten Wert SQL

Der „häufigste Wert“ in einer Verteilung ist ein eigenständiger Begriff in der Statistik mit einem technischen Namen. Es wird als MODE der Distribution bezeichnet. Und Oracle hat den STATS_MODE() Funktion dafür. https://docs.oracle.com/cd/B19306_01 /server.102/b14200/functions154.htm

Zum Beispiel mit dem EMP Tabelle im Standard SCOTT Schema, select stats_mode(deptno) from scott.emp gibt 30 zurück - die Nummer der Abteilung mit den meisten Mitarbeitern. (30 ist der "Name" oder die Nummer der Abteilung, es ist NICHT die Anzahl der Mitarbeiter in dieser Abteilung!)

In Ihrem Fall:

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

Hinweis :wenn zwei oder mehr Hotels für "am häufigsten" gleich sind, dann STATS_MODE() wird einen von ihnen zurückgeben (nicht deterministisch). Wenn Sie alle gebundenen Werte benötigen, benötigen Sie eine andere Lösung - ein gutes Beispiel finden Sie in der Dokumentation (oben verlinkt). Dies ist ein dokumentierter Fehler in Oracles Verständnis und Implementierung des statistischen Konzepts.