Ukvarjanje s podvojenimi vrednostmi v SQL je lahko okorno opravilo. Vendar ne bojte se, ta vodnik je tu, da vam olajša breme.
Podatki so v vseh oblikah in oblikah, vendar so podvojeni zapisi pomemben del vsake podatkovne oblike. Ne glede na to, ali imate opravka s spletnimi podatki ali preprosto brskate po tovornjaku podatkov o prodaji, bo vaša analiza izkrivljena, če imate podvojene vrednosti.
Ali uporabljate SQL za zmanjševanje številk in izvajanje dolgih poizvedb v nizih podatkov? Če da, potem vam bo ta vodnik o upravljanju dvojnikov SQL v popolno veselje.
Tukaj je nekaj različnih načinov, ki jih lahko uporabite za upravljanje dvojnikov z uporabo SQL.
1. Štetje dvojnikov z uporabo skupine po funkciji
SQL je večplasten programski jezik, ki ponuja različne funkcije za poenostavitev izračunov. Če imate veliko izkušenj s funkcijami združevanja v SQL, ste morda že seznanjeni z skupine po funkciji in za kaj se lahko uporablja.
The združi po funkcija je ena od najbolj osnovnih ukazov SQL, ki je idealen za delo z več zapisi, saj lahko uporabljate različne agregatne funkcije, kot je
vsota, štetje, povprečje, in mnogi drugi v povezavi z združi po funkcijo, da dosežete ločeno vrednost v vrsticah.Odvisno od scenarija lahko najdete dvojnike z združi po deluje znotraj enega stolpca in več stolpcev.
a. Preštejte dvojnike v enem stolpcu
Recimo, da imate naslednjo podatkovno tabelo z dvema stolpcema: ProductID in Naročila.
ProductID |
Naročila |
2 |
7 |
2 |
8 |
2 |
10 |
9 |
6 |
10 |
1 |
10 |
5 |
12 |
5 |
12 |
12 |
12 |
7 |
14 |
1 |
14 |
1 |
47 |
4 |
47 |
4 |
Če želite poiskati podvojene ID-je izdelkov, lahko uporabite združi po funkcijo in imeti člen za filtriranje združenih vrednosti, kot sledi:
izberite productid, štetje(productid) kot Total_count
od sahil.product_dups
skupina po productid
s štetjem (productid) > 1
naročilo po productid;
Kot pri običajnem stavku SQL morate začeti z definiranjem stolpcev, ki jih želite prikazati v končnem rezultatu. V tem primeru želimo prikazati število podvojenih vrednosti znotraj ProductID stolpec.
V prvem segmentu določite ProductID stolpec znotraj izberite izjava. The štetje funkcija sledi ProductID sklic, tako da SQL razume namen vaše poizvedbe.
Nato definirajte izvorno tabelo z uporabo od klavzula. Od štetje je združevalna funkcija, morate uporabiti združi po funkcijo za združevanje vseh podobnih vrednosti.
Ne pozabite, da je ideja navesti podvojene vrednosti znotraj ProductID stolpec. Če želite to narediti, morate filtrirati štetje in prikazati vrednosti, ki se v stolpcu pojavljajo večkrat. The imeti klavzula filtrira združene podatke; lahko uporabite pogoj, tj. štetje (productid) >1, za prikaz želenih rezultatov.
Končno, naročilo po klavzula razvrsti končne rezultate v naraščajočem vrstnem redu.
Rezultat je naslednji:
b. Preštejte dvojnike v več stolpcih
Če želite prešteti dvojnike v več stolpcih, vendar ne želite napisati več poizvedb SQL, lahko razširite zgornjo kodo z nekaj prilagoditvami. Na primer, če želite prikazati podvojene vrstice v več stolpcih, lahko uporabite naslednjo kodo:
izberite productid, naročila, štetje(*) kot Total_count
od sahil.product_dups
skupina po productid, naročila
s štetjem (productid) > 1
naročilo po productid;
V izhodu boste opazili, da sta prikazani samo dve vrstici. Ko prilagodite poizvedbo in dodate sklic obeh stolpcev znotraj izberite stavek, dobite število ujemajočih se vrstic s podvojenimi vrednostmi.
Namesto v štetje (stolpec) funkcijo, morate opraviti štetje(*) funkcijo za pridobivanje podvojenih vrstic. The * funkcija preklaplja med vsemi vrsticami in išče podvojene vrstice namesto posameznih podvojenih vrednosti.
Rezultat je prikazan spodaj:
Prikazane so ustrezne vrstice z ID-jem izdelka 14 in 47, ker sta vrednosti naročila enaki.
2. Označevanje dvojnikov s funkcijo row_number().
Medtem ko je združi po in imeti kombinacija je najpreprostejši način za iskanje in označevanje dvojnikov v tabeli, obstaja alternativni način za iskanje dvojnikov z uporabo številka_vrstice() funkcijo. The številka_vrstice() funkcija je del Okenske funkcije SQL kategorijo in je bistvenega pomena za učinkovito obdelavo vaših poizvedb.
Tukaj je opisano, kako lahko dvojnike označite z zastavico številka_vrstice() funkcija:
izberite productid, naročila,
row_number() nad (razdelitev po productid vrstnem redu po productid) kot sno
iz sahil.product_dups;
The številka_vrstice() funkcija prečeše vsako vrednost ID-ja izdelka in asimilira število ponovitev za vsak ID. The particija ključna beseda loči podvojene vrednosti in kronološko dodeli vrednosti, na primer 1, 2,3 in tako naprej.
Če ne uporabljate particija ključno besedo, boste imeli edinstveno serijsko številko za vse ID-je izdelkov, kar ne bo ustrezalo vašemu namenu.
The naročilo po klavzula v razdelku particije deluje pri definiranju vrstnega reda razvrščanja. Izbirate lahko med naraščajočim (privzeto) in padajočim vrstnim redom.
Nazadnje lahko stolpcu dodelite vzdevek za lažje kasnejše filtriranje (če je potrebno).
3. Brisanje podvojenih vrstic iz tabele SQL
Ker lahko podvojene vrednosti v tabeli popačijo vašo analizo, je njihova odstranitev med fazo čiščenja podatkov pogosto nujna. SQL je dragocen jezik, ki ponuja načine za učinkovito sledenje in brisanje podvojenih vrednosti.
a. Uporaba posebne ključne besede
The izrazit ključna beseda je verjetno najpogostejša in pogosto uporabljena funkcija SQL za odstranjevanje podvojenih vrednosti v tabeli. Dvojnike lahko odstranite iz enega samega stolpca ali celo podvojenih vrstic naenkrat.
Evo, kako lahko odstranite dvojnike iz enega stolpca:
izberiteizrazit productid od sahil.product_dups;
Izhod vrne seznam vseh edinstvenih ID-jev izdelkov iz tabele.
Če želite odstraniti podvojene vrstice, lahko zgornjo kodo prilagodite na naslednji način:
izberiteizrazit * od sahil.product_dups;
Izhod vrne seznam vseh edinstvenih vrstic iz tabele. Če pogledate izhod, boste opazili, da se ID-ja izdelka 14 in 47 pojavita samo enkrat v tabeli končnih rezultatov.
b. Uporaba metode izraza skupne tabele (CTE).
Metoda Common Table Expression (CTE) se nekoliko razlikuje od običajne kode SQL. CTE so podobni začasne tabele SQL, z edino razliko, da so navidezni, na katere se lahko sklicujete samo med izvajanjem poizvedbe.
Največja prednost je, da vam ni treba posredovati ločene poizvedbe, da bi te tabele pozneje odstranili, saj prenehajo obstajati takoj, ko se poizvedba izvede. Z uporabo metode CTE lahko uporabite spodnjo kodo za iskanje in brisanje dvojnikov.
z cteproducts kot
(izberite productid, naročila,
row_number() nad (razdelitev po productid vrstnem redu po productid) kot sno
od sahil.product_dups)
izberite * od cteproducts
kjer je sno = 1;
Funkcijo CTE lahko prikličete z uporabo z ključna beseda; določite ime začasne virtualne tabele za z ključna beseda. Referenca tabele CTE je uporabna pri filtriranju vrednosti tabele.
V naslednjem delu dodelite številke vrstic svojim ID-jem izdelkov z uporabo številka_vrstice() funkcijo. Ker se sklicujete na vsak ID izdelka z a particija ima vsak ponavljajoči se ID svojo vrednost.
Na koncu filtrirajte novo ustvarjeno sno stolpec v zadnjem segmentu z drugim izberite izjava. Ta filter nastavite na 1, da dobite edinstvene vrednosti v končnem izhodu.
Naučite se uporabljati SQL na enostaven način
SQL in njegove različice so postale glavna tema s svojo prirojeno sposobnostjo poizvedovanja in uporabe relacijskih baz podatkov. Od pisanja preprostih poizvedb do izvajanja podrobnih analiz s podpoizvedbami, ta jezik ima vsega po malo.
Pred pisanjem kakršnih koli poizvedb pa morate izpopolniti svoje veščine in se lotiti razbijanja kod, da postanete spreten koder. SQL se lahko naučite na zabaven način z uporabo svojega znanja v igrah. Naučite se nekaj modnih odtenkov kodiranja tako, da svoji kodi dodate malo zabave.