rezumat: în acest tutorial, veți învăța cum să utilizați funcția PostgreSQL RANK() pentru a atribui un rang pentru fiecare rând al unui set de rezultate.

Introducere în funcția PostgreSQL RANK ()

funcția RANK() atribuie un rang fiecărui rând dintr-o partiție a unui set de rezultate.pentru fiecare partiție, rangul primului rând este 1., Funcția RANK() adaugă numărul de rânduri legate la rangul legat pentru a calcula rangul rândului următor, astfel încât rândurile să nu fie secvențiale. În plus, rândurile cu aceleași valori vor obține același rang.

următoarele ilustrează sintaxa RANK() funcția:

Code language: CSS (css)

În această sintaxă:

  • în Primul rând, PARTITION BY clauza distribuie rânduri din setul de rezultate în partiții pentru care RANK() funcția este aplicat.,
  • apoi, clauza ORDER BY specifică ordinea rândurilor din fiecare partiție a la care se aplică funcția.

funcția RANK() poate fi utilă pentru crearea rapoartelor top-N și bottom-N.,a9f5e0f”>

tabel:

în al Patrulea rând, utilizați RANK() funcția de a atribui ranguri de randuri din setul de rezultate al ranks tabel:

imaginea De mai jos prezinta ieșire:

după Cum puteți vedea în mod clar de ieșire:

  • primul și Al doilea rânduri primi același rang, deoarece acestea au aceeași valoare A.,
  • al treilea, Al patrulea, și al cincilea rând primi rank 3 deoarece RANK() funcția de sare de rangul 2 și toate dintre ele au aceleași valori B.,a datelor de products tabel:

    1) Folosind PostgreSQL RANG() funcția pentru întregul set de rezultate

    Acest exemplu utilizează RANK() funcția de a atribui un rang pentru fiecare produs cu prețul său:

    În acest exemplu, am omis PARTITION BY clauză, prin urmare, RANK() funcția tratat întregul set de rezultate ca o singură partiție.,

    funcția RANK() a calculat un rang pentru fiecare rând din întregul set de rezultate sortat după prețuri de la mare la mic.,

    2) Folosind PostgreSQL GRADUL (funcția) cu PARTITIA DE clauza de exemplu,

    următorul exemplu folosește RANK() funcția de a atribui un rang pentru fiecare produs din fiecare grup de produse:

    În acest exemplu:

    • în Primul rând, PARTITION BY clauza distribuie produse în partiții grupate în funcție de grupa de produse id (group_id).
    • în al doilea rând, clauza ORDER BY sortează produsele în fiecare partiție după prețurile lor de la mare la mic.,

    RANK() funcție a fost aplicată pentru fiecare produs din fiecare grup de produse și este reinițializat la grupul de produse s-a schimbat.

    În acest tutorial, ați învățat cum să utilizați funcția PostgreSQL RANK() pentru a calcula un rang pentru fiecare rând dintr-o partiție a unui set de rezultate.

    • a fost acest tutorial util ?
    • YesNo