sql >> Database >  >> RDS >> Oracle

Hoe u de meest voorkomende SQL-waarde kunt krijgen

De "meest voorkomende waarde" in een distributie is een apart begrip in de statistiek, met een technische naam. Het wordt de MODUS van de distributie genoemd. En Oracle heeft de STATS_MODE() daarvoor functioneren. https://docs.oracle.com/cd/B19306_01 /server.102/b14200/functions154.htm

Gebruik bijvoorbeeld de EMP tabel in de standaard SCOTT schema, select stats_mode(deptno) from scott.emp retourneert 30 - het nummer van de afdeling met de meeste medewerkers. (30 is de afdeling "naam" of nummer, het is NIET het aantal medewerkers in die afdeling!)

In jouw geval:

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

Opmerking :als twee of meer hotels gelijk zijn voor "meest frequent", dan STATS_MODE() zal een van hen retourneren (niet-deterministisch). Als je alle gekoppelde waarden nodig hebt, heb je een andere oplossing nodig - een goed voorbeeld staat in de documentatie (hierboven gelinkt). Dit is een gedocumenteerde fout in Oracle's begrip en implementatie van het statistische concept.



  1. Een CTE maken in Oracle

  2. Om de DataGridview te bewerken en ook op te slaan in een databasetabel met c#

  3. Hoe een specifieke dag van de maand opvragen in Oracle

  4. INSERT in enkele query in 2 tabellen postgresql