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

Sådan får du den hyppigste SQL-værdi

Den "hyppigst forekommende værdi" i en distribution er et særskilt begreb i statistik, med et teknisk navn. Det kaldes distributionens MODE. Og Oracle har STATS_MODE() funktion til det. https://docs.oracle.com/cd/B19306_01 /server.102/b14200/functions154.htm

For eksempel ved at bruge EMP tabel i standarden SCOTT skema, select stats_mode(deptno) from scott.emp returnerer 30 - antallet af afdelingen med flest ansatte. (30 er afdelingens "navn" eller nummer, det er IKKE antallet af medarbejdere i den afdeling!)

I dit tilfælde:

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

Bemærk :hvis to eller flere hoteller er knyttet til "hyppigste", så STATS_MODE() vil returnere en af ​​dem (ikke-deterministisk). Hvis du har brug for alle de bundne værdier, skal du bruge en anden løsning - et godt eksempel er i dokumentationen (linket ovenfor). Dette er en dokumenteret fejl i Oracles forståelse og implementering af det statistiske koncept.



  1. Bedste måde at forhindre en enkelt person i at oprette flere konti

  2. SqlParameter tillader ikke tabelnavn - andre muligheder uden sql-injektionsangreb?

  3. Gør SQL Server-ydeevne let

  4. Hvordan fortæller man node.js, at mysql ikke kører på standardporten?