DISTINCT sisään PostgreSQL: Valitse, tilaa ja raja (esimerkkejä)

⚡ Älykäs yhteenveto

DISTINCT sisään PostgreSQL käytetään SELECT-lausekkeen kanssa kaksoisrivien poistamiseen ja vain yksilöllisten arvojen palauttamiseen. Se kattaa SELECT-syntaksin, SQL-komennon ja pgAdminin, DISTINCT-lausekkeen yksittäisissä ja useissa sarakkeissa sekä DISTINCT-lausekkeen ja GROUP BY -lausekkeen eron.

  • 🔎 VALINTA: Hae sarakkeita taulukosta SELECT column FROM table -komennolla.
  • 🧹 ERIKOIS: Poista päällekkäiset rivit ja säilytä yksi rivi yksilöllistä arvoa kohden.
  • ↕️ TILAUS: Lajittele oletusarvoisesti nousevaan järjestykseen tai laskevaan järjestykseen DESC-järjestykseen.
  • 🔢 RAJA: Rajoita kyselyn palauttamien tietueiden määrää.
  • 🖥️ Työkalut: Suorita samat kyselyt SQL-komennossa tai pgAdminissa.

DISTINCT sisään PostgreSQL

Voit hakea tietoja taulukosta SELECT-käskyllä.

Syntaksi:

SELECT [column names] FROM [table_name]

Täällä

  • sarakkeiden nimet: Niiden sarakkeiden nimet, joiden arvon haluat noutaa.
  • FROM: FROM-lauseke määrittää yhden tai useamman lähdetaulukon SELECT-lausekkeelle.
  • taulukon_nimi: Sen aiemmin luodun taulukon nimi, jota haluat kysellä.

Mikä on DISTINCT-ominaisuus PostgreSQL?

DISTINCT lauseke sisään PostgreSQL käytetään SELECT-lausekkeen kanssa kaksoisrivien poistamiseen tulosjoukosta. Kun sarake sisältää toistuvia arvoja, SELECT DISTINCT palauttaa vain yksilölliset arvot, säilytäping yksi rivi kutakin kaksoiskappaleiden ryhmää kohden. Tästä on hyötyä, kun haluat luettelon erillisistä merkinnöistä, kuten yksilöllisistä asiakaskaupungeista tai tuoteluokista, ilman toistoa.

DISTINCT arvioi kaikki SELECT-lausekkeessa luetellut sarakkeet sen määrittämiseksi, onko rivi yksilöllinen. PostgreSQL tarjoaa myös DISTINCT ON -funktion, joka palauttaa ensimmäisen rivin määritetyn lausekkeen jokaista erillistä arvoa kohden. Voit yhdistää DISTINCT-funktion ORDER BY -funktion kanssa hallitaksesi näytettäviä rivejä ja LIMIT-funktion kanssa rajoittaaksesi tulosten määrää.

PostgreSQL Valitse Lauseke SQL Shellissä

Vaihe 1) Meillä on taulukko ”tutorials”, jossa on kaksi saraketta, ”id” ja ”tutorial_name”. Tehdään siitä kysely. Käytä seuraavaa kyselyä taulukon tietojen listaamiseen:

SELECT id,tutorial_name FROM tutorials;

PostgreSQL Valitse Lauseke SQL Shellissä

HUOMAUTUS: Käytä komentoa \c muodostaaksesi yhteyden tietokantaan, joka sisältää kyselyn kohteena olevan taulukon. Meidän tapauksessamme olemme yhteydessä tietokantaan guru99.

Vaihe 2) Jos haluat tarkastella tietyn taulukon kaikkia sarakkeita, voimme käyttää tähti- (*) -jokerimerkkiä. Tämä tarkoittaa, että se tarkistaa kaikki mahdollisuudet ja palauttaa jokaisen sarakkeen.

SELECT * FROM tutorials;

PostgreSQL Valitse Lauseke SQL Shellissä

Se näyttää kaikki opetusohjelmataulukon tietueet.

Vaihe 3) Voit käyttää ORDER-lausetta lajitellaksesi taulukon tiedot tietyn sarakkeen perusteella. ORDER-lause järjestää tiedot A–Z-järjestyksessä.

SELECT * FROM tutorials ORDER BY id;

PostgreSQL Valitse Lauseke SQL Shellissä

Voit lajitella Z:sta A:hen käyttämällä "DESC":tä "ORDER BY" -käskyn jälkeen.

SELECT * FROM tutorials ORDER BY id DESC;

PostgreSQL Valitse Lauseke SQL Shellissä

Vaihe 4) SELECT DISTINCT -sovellus PostgreSQL lauseketta voidaan käyttää kaksoisrivien poistamiseen tuloksesta. Se säilyttää yhden rivin jokaiselle kaksoiskappaleryhmälle.

Syntax:
SELECT DISTINCT column_1 FROM table_name;

Kysellään Postgres Select Distinct id -arvoja taulukko-opetusohjelmistamme käyttämällä erillisiä kyselyitä PostgreSQL:

SELECT DISTINCT(id) FROM tutorials;

PostgreSQL Valitse Lauseke SQL Shellissä

Vaihe 5) Voit käyttää PostgreSQL LIMIT-lauseke, joka rajoittaa SELECT-kyselyn palauttamien tietueiden määrää.

SELECT * FROM tutorials LIMIT 4;

PostgreSQL Valitse Lauseke SQL Shellissä

PostgreSQL Valitse lauseke pgAdminissa

Vaihe 1) Objektipuussa:

  1. Napsauta taulukkoa hiiren kakkospainikkeella.
  2. Valitse Skriptit.
  3. Napsauta VALITSE SKRIPTI.

PostgreSQL Valitse lauseke pgAdminissa

Vaihe 2) Oikealla olevassa paneelissa:

  1. Muokkaa SELECT-kyselyä tarvittaessa.
  2. Napsauta Lightning-kuvaketta.
  3. Tarkkaile tuotosta.

PostgreSQL Valitse lauseke pgAdminissa

DISTINCT useissa sarakkeissa

SELECT DISTINCT -lauseke voi koskea myös useampaa kuin yhtä saraketta. Kun listaat useita sarakkeita DISTINCT-lauseen jälkeen, PostgreSQL käsittelee näiden sarakkeiden yhdistelmää yksikkönä ja poistaa rivit, joissa koko yhdistelmä esiintyy.

Syntax:
SELECT DISTINCT column_1, column_2 FROM table_name;

Esimerkiksi tutorial_name- ja id-muuttujien yksilöllisten yhdistelmien palauttamiseksi tutorials-taulukosta:

SELECT DISTINCT tutorial_name, id FROM tutorials;

Tässä tapauksessa rivi poistetaan vain, kun sekä tutorial_name että id vastaavat toista riviä. Jos kahdella rivillä on sama tutorial_name, mutta eri id-arvot, molemmat säilytetään, koska yhdistelmä on edelleen ainutlaatuinen. Tämä toiminta on tärkeää muistaa: DISTINCT ei poista yhden sarakkeen duplikaatteja, kun useita sarakkeita on valittu, vaan se poistaa kaikkien valittujen sarakkeiden duplikaatit yhdessä.

DISTINCT vs. GROUP BY -kohderyhmä PostgreSQL

Sekä DISTINCT että GROUP BY voivat poistaa kaksoisarvoja, mutta niillä on eri tarkoitukset:

  • DISTINCT palauttaa yksinkertaisesti yksilölliset rivit tuloksesta ja on paras vaihtoehto, kun tarvitset vain deduplikoidun listan.
  • GROUP BY ryhmittelee rivit, joilla on sama arvo, jotta voit käyttää koostefunktioita, kuten COUNT, SUM tai AVG jokaiselle ryhmälle.

Esimerkiksi kaksi alla olevaa kyselyä palauttavat molemmat yksilölliset tunnistearvot:

SELECT DISTINCT id FROM tutorials;
SELECT id FROM tutorials GROUP BY id;

Käytä DISTINCT-funktiota yksinkertaiseen yksilöllisten arvojen luetteloon ja GROUP BY -funktiota, kun tarvitset myös laskutoimituksen ryhmäkohtaisesti, kuten laskemalla, kuinka monella opetusohjelmalla on sama tunnus. Yksinkertaisissa kyselyissä suunnittelija tuottaa usein samanlaisen suorituskyvyn molemmille, mutta GROUP BY -funktiota tarvitaan aina, kun käytetään aggregointia.

Cheat Sheet

SELECT [column names] FROM [table_name] [clause]

Tässä ovat eri parametrit:

  • sarakkeiden nimet: Niiden sarakkeiden nimet, joiden arvon haluat noutaa.
  • FROM: FROM-lauseke määrittää yhden tai useamman lähdetaulukon SELECT-lausekkeelle.
  • taulukon_nimi: Sen aiemmin luodun taulukon nimi, jota haluat kysellä.

Erilaisia ​​lausekkeita ovat:

komennot Tuotetiedot
* Noutaa tietueet kaikilta taulukon riveiltä.
DISTINCT DISTINCT sisään PostgreSQL auttaa poistamaan kaksoiskappaleet tuloksesta.
TILAUS Lajittelee rivit sarakkeen perusteella. Oletusjärjestys on nouseva. Käytä avainsanaa DESC lajitellaksesi laskevaan järjestykseen.
RAJOITA LIMIT sisään PostgreSQL rajoittaa kyselyn palauttamien tietueiden määrää.

UKK

Kyllä. Tekoälyavustajat voivat muuntaa kuvauksen SELECT DISTINCT -lausekkeiksi, lisätä ORDER BY- tai LIMIT-lausekkeet ja selittää tuloksen. Sinun tulisi silti testata kyselyä kaavassasi ennen sen suorittamista tuotannossa.

Kyllä. Tekoälytyökalut voivat lukea kyselysuunnitelman EXPLAIN ANALYZE -kyselystä ja ehdottaa indeksejä tai kirjoittaa DISTINCT-taulukon uudelleen GROUP BY -taulukoksi. Vahvista ehdotukset aina oikeilla tiedoilla, koska suorituskyky riippuu taulukon koosta ja indekseistä.

DISTINCT poistaa kaksoisrivit kaikista valituista sarakkeista. DISTINCT ON (lauseke) säilyttää ensimmäisen rivin kullekin lausekkeen erilliselle arvolle, jolloin voit valita yhden rivin ryhmää kohden, yleensä yhdistettynä ORDER BY -lausekkeeseen.

DISTINCT voi olla hitaampi suurissa taulukoissa, koska sen on vertailtava ja poistettava kaksoiskappaleita, usein lajittelua tai hajautusfunktiota käyttäen. Oikeat indeksit ja valittujen sarakkeiden rajoittaminen auttavat vähentämään sen kustannuksia.

Tiivistä tämä viesti seuraavasti: