Ratkaistu: Double

Viimeisin päivitys: 09/13/2023
Kirjoittaja: SQL SourceTrail

SQL, lyhenne sanoista Structured Query Language, on tietokannan hallintakieli, jota käytetään relaatiotietokannoissa olevien tietojen hallintaan. Vaikka doublon (jota englanniksi kutsutaan yleensä "kaksoiskappaleeksi") on avaintermi tietokantamaailmassa, se viittaa redundanttisiin tai toistuviin tietoihin, jotka voivat viedä tarpeettomasti tilaa tai aiheuttaa hämmennystä analyytikoille. Näin ollen tällaisten kaksoiskappaleiden havaitsemisesta ja käsittelystä tulee tärkeä näkökohta tietokannan hallinnassa.

Kaksoiskappaleiden etsiminen ja poistaminen on yleinen tarve tietokannan hallinnassa, ja sitä käsittelevät yleensä SQL-kyselyt. Tällaiset kyselyt tunnistavat rivit, joissa tietyt sarakkeet on kopioitu. Yleisin esimerkki tästä ovat käyttäjät, joilla on sama sähköpostiosoite käyttäjien rekisteröintitaulukossa.

Tunnistaa päällekkäiset tietueet SQL:ssä

Kaksoiskappaleiden tunnistaminen edellyttää SELECT-käskyn kirjoittamista, joka sisältää GROUP BY:n sarakkeille, joiden tulee olla yksilöllisiä. Seuraava syntaksi tekee juuri sen:

SELECT column_name, COUNT(column_name)
FROM table_name
GROUP BY column_name
HAVING COUNT(column_name) > 1;

HAVING-lausetta käyttämällä voimme asettaa ehdon aggregoidulle tulokselle: tässä tapauksessa, jossa luku on suurempi kuin 1, mikä osoittaa päällekkäisyyden.

Kopioiden poistaminen

Kun kaksoiskappaleet on tunnistettu, seuraava vaihe on poistaa ne tietokannasta. Yleisin strategia on säilyttää yksi esiintymä toistuvasta datapisteestä ja poistaa loput. Näin:

WITH cte AS (
  SELECT ROW_NUMBER() OVER (
    PARTITION BY column_name
    ORDER BY column_name
  ) row_num
  FROM table_name
)
DELETE FROM cte
WHERE row_num > 1;

Tämä koodi käyttää yhteistä taulukkolauseketta (CTE), joka sisältää ROW_NUMBER()-ikkunafunktion, joka määrittää kullekin riville yksilöllisen numeron osiossa. Sitten kaikki rivit, joiden rivinumero on suurempi kuin 1, poistetaan.

Kirjastot ja mukana olevat toiminnot

Kaksoiskappaleiden hallinnassa SQL:n sisäänrakennetuilla toiminnoilla on merkittävä rooli. COUNT()-funktio on näppäilty kaksoiskappaleiden olemassaolon määrittäminen. Yhdessä GROUP BY:n kanssa se antaa meille kunkin yksittäisen kohteen numeron kiinnostavissa sarakkeissa.

ROW_NUMBER() on toinen tärkeä toiminto kaksoiskappaleiden käsittelyssä. Se on osa toimintoluokkaa, joka tunnetaan nimellä ikkunafunktiot, jotka suorittavat laskutoimituksen taulukon rivijoukolle, jotka liittyvät nykyiseen riviin.

CTE, vaikka se ei ole toiminto, on a väliaikaisesti nimetty tulosjoukko joka auttaa meitä muodostamaan monimutkaisia ​​kyselyitä. Sen käyttö kaksoiskappaleiden poistamisessa SQL-tietokannoista korostaa sen tehoa ja joustavuutta. CTE:iden käyttö johtaa usein luettavampiin ja ylläpidettäviin SQL-skripteihin, mikä lisää niiden viehätystä tietokannan hallinnassa.

Yhteenvetona voidaan todeta, että kaksoiskappaleiden tai kaksoiskappaleiden käsittely SQL-tietokannassa on olennainen taito tietokannan hallinnassa. Kun ymmärrät SQL:n sisäänrakennetut toiminnot ja CTE:iden käytön, tietokanta voidaan tehokkaasti pitää puhtaana tarpeettomasta tiedosta ja optimoitu kyselyille.

Related viestiä: