SQLShack (Suomi)

Me suorittaa laskutoimituksia tiedot käyttäen erilaisia yhdistettyjä toimintoja, kuten Max, Min ja AVG. Saamme yhden lähtörivin näiden toimintojen avulla. SQL Sever tarjoaa SQL RANK toimintoja määrittää sijoitus yksittäisten kenttien kohti luokittelut. Se palauttaa kunkin osallistuvan rivin yhteenlasketun arvon. SQL RANK-toiminnot tunnetaan myös Ikkunafunktioina.

  • Huomautus: Windows aikavälillä tämä ei liity Microsoft Windows-käyttöjärjestelmä., Nämä ovat SQL RANK-funktioita.

meillä on seuraavat rank-funktiot.

  • ROW_NUMBER()
  • RANK()
  • DENSE_RANK()
  • NTILE()

SQL-LISTALLA toimintoja, käytämme YLI() lauseke määrittää rivien tulosjoukon. Voimme myös käyttää SQL-osiota lausekkeittain määritelläksemme osajoukon dataa osioon. Voit myös käyttää järjestystä lausekkeella lajitella tulokset laskevassa tai nousevassa järjestyksessä.

ennen kuin tutkimme näitä SQL RANK-funktioita, valmistellaan näytetiedot., Tässä otosaineistossa meillä on kolmen matematiikan, luonnontieteiden ja Englannin oppiaineiden opiskelijan tenttitulokset.

meillä on seuraavat näytteenottotiedot Tarkastustaulukossa.

katsotaanpa käyttää kunkin SQL-Listalla Toimintoja tulevia esimerkkejä.

ROW_Number() SQL-LISTALLA toiminto

käytämme ROW_Number() SQL-RANK-toiminnon saada ainutlaatuinen juokseva numero kunkin rivin määritellyt tiedot. Se antaa sijoitus yksi ensimmäisen rivin ja sitten lisäykset arvo yhdellä kunkin rivin. Saamme riviin erilaisia rivejä, joilla on myös samanlaiset arvot.,

suorita seuraava kysely saadaksesi arvosanan oppilaille heidän arvosanojensa mukaan.,

1
2
3
4
5

SELECT Studentname,
Subject,
Marks,
ROW_NUMBER() OVER(ORDER BY Marks) RowNumber
FROM ExamResult;

By default, it sorts the data in ascending order and starts assigning ranks for each row., Yllä olevassa kuvakaappauksessa saamme rivin numero 1 merkille 50.

voimme määrittää laskevan järjestyksen lausekkeella, ja se muuttaa sijoitusta vastaavasti.,ae”>

1
2
3
4
5

SELECT Studentname,
Subject,
Marks,
ROW_NUMBER() OVER(ORDER BY Marks desc) RowNumber
FROM ExamResult;

RANK() SQL RANK Function

We use RANK() SQL Rank function to specify rank for each row in the result set., Meillä on kolmen aineen opiskelijatulokset. Haluamme asettaa opiskelijoiden tuloksen arvosanojen mukaan aineissa. Esimerkiksi seuraavassa kuvakaappauksessa opiskelija Isabella sai korkeimmat arvosanat englanninkielisessä oppiaineessa ja alimmat arvosanat matematiikan oppiaineessa. Arvosanojen mukaan Isabella saa ensimmäisen arvon englanniksi ja kolmannen sijan matematiikan oppiaineessa.

suorittaa seuraavan kyselyn saadakseen tämän tulosjoukon.,v id=”c5a1f1b829″>

1
2
3
4
5
6
7

SELECT Studentname,
Subject,
Marks,
RANK() OVER(PARTITION BY Studentname ORDER BY Marks DESC) Rank
FROM ExamResult
ORDER BY Studentname,
Rank;

Let’s execute the following query of SQL Rank function and look at the result set., Tässä kyselyssä emme määritelleet SQL-osiota lausekkeella jakaaksemme tiedot pienempään osajoukkoon. Käytämme SQL Rank funktio yli lauseke Marks lauseke (alenevassa järjestyksessä) saada riveissä kunkin rivit.,div id=”7d9d5b54ae”>

1
2
3
4
5
6

SELECT Studentname,
Subject,
Marks,
RANK() OVER(ORDER BY Marks DESC) Rank
FROM ExamResult
ORDER BY Rank;

In the output, we can see each student get rank as per their marks irrespective of the specific subject., Esimerkiksi koko tulossarjan korkeimmat ja alimmat pisteet ovat 90 ja 50. Tulos asettaa, korkein merkki saa RANK 1, ja alin merkki saa SIJOITUS 9.

Jos kaksi oppilasta saa samat merkit (esimerkissämme rivinumerot 4 ja 5), Myös heidän rivinsä ovat samat.

DENSE_RANK() SQL-LISTALLA toiminto

käytämme DENSE_RANK () – funktio määrittää ainutlaatuinen listalla numero sisällä osio kohti määritetyn sarakkeen arvon. Se muistuttaa Rivifunktiota pienellä erolla.,

SQL RANK-funktiossa DENSE_RANK(), jos meillä on kaksoiskappaleet, SQL määrittää eri rivejä myös näille riveille. Ihanteellisesti meidän pitäisi saada sama sijoitus kaksoiskappaleille tai vastaaville arvoille.

suoritetaan seuraava kysely DENSE_RANK () – funktiolla.,

1
2
3
4
5
6

VALITSE Studentname,
Aihe
Merkit
DENSE_RANK() YLI(JOTTA Tavaramerkkien, DESC) Sijoitus
VUODESTA ExamResult
JOTTA Sijoitus;

lähtö, voit nähdä, että meillä on sama sijoitus sekä Lily ja Isabella, joka sijoitettiin 70 markkaa.,

katsotaanpa käyttää DENSE_RANK toiminto yhdessä SQL-OSIO, JONKA lauseke.,v id=”2d0aafc924″>

1
2
3
4
5
6
7

VALITSE Studentname,
Aihe
Markkaa
DENSE_RANK() YLI(OSIO Aiheesta, JOTTA Tavaramerkkien, DESC) Sijoitus
VUODESTA ExamResult
JÄRJESTYS Studentname,
Sijoitus;

– Meillä ei ole kaksi opiskelijaa, joilla on samankaltaisia markkaa; siksi tulos asettaa samanlainen SIJOITUS Toiminta tässä tapauksessa.,

– Anna on päivittää oppilas-merkintä seuraava kysely ja suoritetaan kysely.

1
Päivitys Examresult asettaa Merkit=70, jossa Studentname=’Isabella’ ja Aihe=’Matematiikka’

– Voimme nähdä, että opiskelija ryhmä, Isabella on samanlainen markkaa Matematiikan ja Luonnontieteiden aiheita., Sijoitus on myös tässä tapauksessa sama molemmille alamaisille.

katsotaanpa ero (RANK) ja DENSE_RANK() SQL-Listalla toiminto, jolla on seuraavat kysely.,b829″>

1
2
3
4
5
6
7

VALITSE Studentname,
Aihe
Merkit
DENSE_RANK() YLI(OSIO StudentName JÄRJESTYS Markkaa ) Sijoitus
VUODESTA ExamResult
JÄRJESTYS Studentname,
Sijoitus;

lähtö, voit nähdä ero sijoitus toiminto lähtö sisällä osioita., Meillä ei ole mitään aukkoa DENSE_RANK-funktiossa.

seuraavassa kuvakaappaus, voit nähdä, että Isabella on vastaavat numerot kaksi aihetta. Rank-funktio määrittää rank 1: n samanlaisille arvoille kuitenkin, sisäisesti jättää huomiotta kakkossijan, ja seuraava rivi saa sijan kolme.

Dense_rank-funktiossa se säilyttää arvon eikä anna mitään aukkoa arvoille.

NTILE(N) SQL-LISTALLA toiminto

käytämme NTILE(N) – toiminto jakaa rivien määritelty (N) määrä ryhmiä., Jokainen riviryhmä saa sijoituksensa määritetyn ehdon mukaan. Meidän on määriteltävä, mikä on haluttu ryhmämäärä.

minun Esimerkissäni meillä on yhdeksän levyä ExamResult-taulukossa. NATILE (2) osoittaa, että tarvitsemme tuloksessa kahden ennätyksen ryhmän.,

1
2
3
4
5

SELECT *,
NTILE(2) OVER(
ORDER BY Marks DESC) Rank
FROM ExamResult
ORDER BY rank;

In the output, we can see two groups. Group 1 contains five rows, and Group 2 contains four rows.,

Vastaavasti, NTILE(3) jakaa rivien kolme ryhmää, jolla on kolme kirjaa kussakin ryhmässä.,

1
2
3
4
5

SELECT *,
NTILE(3) OVER(
ORDER BY Marks DESC) Rank
FROM ExamResult
ORDER BY rank;

We can use SQL PARTITION BY clause to have more than one partition., Seuraavassa kyselyssä jokainen aiheiden osio jaetaan kahteen ryhmään.,

1
2
3
4

SELECT *,
NTILE(2) OVER(PARTITION BY subject ORDER BY Marks DESC) Rank
FROM ExamResult
ORDER BY subject, rank;

Practical usage of SQL RANK functions

We can use SQL RANK function to fetch specific rows from the data., Oletetaan, että haluamme saada tiedot opiskelijoiden sijoista 1-3. Seuraavassa kyselyn, käytämme yhteisen pöydän ilmaisuja(CTE) saada tietoja käyttämällä ROW_NUMBER () – toiminto ja myöhemmin suodatetaan tulos CTE tyydyttää meidän kunnossa.,d>

KANSSA StudentRanks KUIN
(
SELECT *, ROW_NUMBER() YLI( ORDER BY-Merkit), KUTEN Riveissä
VUODESTA ExamResult
)
VALITSE StudentName , Merkit
VUODESTA StudentRanks
– MIHIN Joukkoon >= 1, ja Joukkoon <=3
JÄRJESTYS Riveissä

Voimme käyttää OFFSET NOUTAA komento alkaen SQL Server 2012 noutaa tietyn määrän tietueita.,v id=”0fa57edc44″>

KANSSA StudentRanks KUIN
(
SELECT *, ROW_NUMBER() YLI( ORDER BY-Merkit), KUTEN Riveissä
VUODESTA ExamResult
)
VALITSE StudentName , Merkit
VUODESTA StudentRanks
JÄRJESTYS Riveissä POIKKEAMA 1 KRS NOUTAA SEURAAVAN 3 RIVIÄ VAIN;

nopea yhteenveto SQL-LISTALLA Toiminnot

ROW_Number

Se antaa juokseva listalla numero jokaiselle ainutlaatuinen ennätys.,

SIJOITUS

Se antaa listalla numero kunkin rivin osio. Se ohittaa luvun samoille arvoille.

Dense_RANK

Se antaa listalla numero kunkin rivin osio. Se ei jätä lukua väliin vastaaville arvoille.

NTILE(N)

Se jakaa määrä riviä kohti määritelty osio ja määrittää ainutlaatuinen arvo-osio.,

Johtopäätös

tässä artikkelissa, me tutkia SQL-LISTALLA toimintoja, ja ero näiden toiminnot. On hyödyllistä, että sql-kehittäjät tuntevat nämä toiminnot tutkia ja hallita niiden tietoja hyvin. Jos sinulla on kommentteja tai kysymyksiä, voit jättää ne kommentit alla.,

  • Tekijä
  • Viimeisimmät Viestit
Koska MCSA-sertifioitu ja Microsoft Certified Trainer Gurgaon, Intia, jolla on 13 vuoden kokemus, Rajendra toimii useita suuria yrityksiä, keskittyen suorituskyvyn optimointi -, seuranta -, korkean käytettävyyden ja katastrofista palautumisen strategioiden ja täytäntöönpanon., Hän on kirjoittanut satoja arvovaltainen artikkeleita SQL Server, Azure, MySQL, Linux, Power BI -, Performance tuning, AWS/Amazon RDS, Git, ja niihin liittyvien teknologioiden, että on katsellut yli 10m lukijat tasalla.
Hän on luoja yksi suurimmista ilmainen online-kokoelmia artikkeleita yhden aiheen, hänen 50-osainen sarja, SQL Server Aina Saatavuus Ryhmiä. Perustuu hänen panoksensa SQL Server yhteisö, hän on tunnustettu kanssa eri palkintoja, kuten arvostetun ”Best author of the year” jatkuvasti vuonna 2020 ja 2021 klo SQLShack.,
Raj on aina kiinnostunut uusista haasteista, joten jos tarvitset konsultointi apua tahansa aiheesta, jota käsitellään hänen kirjoituksissaan, hän voi olla tavoitettavissa rajendra.gupta16@gmail.,com
Näytä kaikki viestit Rajendra Gupta

Uusimmat viestit Rajendra Gupta (katso kaikki)
  • Suorittaa pienet ja suuret versio päivitykset AWS RDS SQL Server – tammikuu 29, 2021
  • Käyttöönotto AWS-RDS-PostgreSQL-instanssit – 27. tammikuuta 2021
  • Siirtyminen paikalliseen SQL-tietokantoihin AWS RDS SQL Server käyttämällä AWS DMS – 25. tammikuuta 2021

Vastaa

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *