Denne opplæringen skal fordype seg dypere i hvordan MySQL -tette funksjon fungerer og hvordan vi kan bruke den i forskjellige databaseoperasjoner. Hvis du vil følge med denne opplæringen, kan du vurdere å laste ned Sakila -eksempeldatabasen fra ressursen som er gitt nedenfor:
https: // dev.mysql.com/doc/indeks-annet.html
Grunnleggende bruk
MySQL DENSE_RANK () -funksjonen viser rekkene på en rad innenfor en partisjon uten hull. Radens rekker øker med en verdi av 1 fra den unike rangverdien til forrige rad.
Den generelle syntaksen til den tette_rank () -funksjonen er som:
Velg Col1 Dense_Rank () over (partisjon av expr bestill av expr [asc | desc]) rank_col_name fra tb_nameLa oss undersøke ovennevnte spørringssyntaks nærmere.
Den tette_rank () -funksjonen binder seg til valgklausulen, som vil vise rekkene til radene fra det spesifiserte tabellen.
DENSE_RANK () Over seksjoner Returer resultatet av DENSE_RANK () -funksjonen og utdataene som holdes i kolonnenavnet som er spesifisert.
Partisjonen med klausul deler resultatene som er returnert med fra -klausulen til partisjoner. Den tette_rank () -funksjonen brukes på hver partisjon.
Til slutt spesifiserer ordren etter seksjonen rekkefølgen på de innstilte radene i hver partisjon.
Eksempel Bruk sak
La oss bruke en eksempeldatabase for å illustrere hvordan vi kan bruke DENSE_RANK () -funksjonen. For dette eksemplet skal vi bruke Sakila -databasen, og mer spesifikt filmbordet i Sakila -databasen.
Ved hjelp av DENSE_RANK () -funksjonen kan vi rangere filmene etter deres leiepris, som vist i spørringen nedenfor:
Bruk Sakila;På grunn av den enorme mengden data om Sakila-databasen, vil jeg organisere utdataene for enklere lesing og illustrasjon.
Utgangen er under:
Hvis du ser nøye på utdataene ovenfor, vil du legge merke til at de resulterende utgangene varierer fra rang 1 til 3, som tilsvarer utleieverdiene i filmtabellen. Leieverdiene er:
I eksemplet ovenfor brukte vi partisjonen med klausul for å dele de resulterende settene i forskjellige partisjoner, i dette tilfellet Release_year.
Deretter brukte vi MySQL -ordren etter uttalelsen for å bestille filmene etter leieprisen i stigende rekkefølge. Til slutt brukte vi DENSE_RANK () -funksjonen på hver partisjon som er spesifisert i rekkefølgen ved uttalelse.
Konklusjon
I denne opplæringen forklarte vi hvordan funksjonen DENSE_RANK () fungerer i en database og brukte et ekte eksempel for å illustrere hvordan du bruker den.
Du kan lære mer om DENSE_RANK () AD Andre vindusfunksjoner fra ressursen som er gitt nedenfor:
https: // dev.mysql.com/doc/refman/8.0/no/vindusfunksjoner.html