Kompjuters, Tipi ta 'fajls
SQL distinti: deskrizzjoni eżempji, proprjetajiet
Spiss meta tuża SQL biex jirkupraw data mill-tabelli, l-utent jirċievi l-informazzjoni żejda hija l-eżistenza ta 'ringieli duplikat assolutament identiċi. Biex tiġi evitata din is-sitwazzjoni, l-użu SQL argument distint fis-sentenza Agħżel. Dan l-artikolu ser jiddiskuti eżempji tal-użu ta 'dan l-argument, kif ukoll sitwazzjonijiet fejn l-applikazzjoni għandha tiġi abbandunata mill-argument.
Qabel ma aħna tipproċedi biex tikkunsidra l-eżempji speċifiċi, joħolqu l-database rikjesta koppja ta 'tabelli.
tabella preparazzjoni
Immaġina li għandna informazzjoni ħwienet database dwar il-wallpaper ppreżentati f'żewġ tabelli. Dan oboi-tabella (wallpaper) ma oqsma id (Identifikatur uniku), tat-tip (tip ta 'wallpaper -. Karta, tal-vinil, eċċ), kulur (kulur), li Struct (struttura) u l-prezz (prezz). U tabella Ostatki (residwi) b'oqsma id_oboi (a referenza għall-identifikatur uniku fit-tabella Oboi) u l-għadd (l-għadd ta 'rollijiet fl-istokk).
Imla t-tabella tad-data. Fit-tabella żid il-wallpaper 9 rekords:
Oboi | ||||
id | tip | kulur | Istituzzjonjijiet | prezz |
1 | karta | multicolor | intaljat | 56.9 |
2 | karta double-ub'saffi | beige | lixxa | 114.8 |
3 | vinil | oranġjo | intaljat | 504 |
4 | suf | beige | intaljat | 1020.9 |
5 | karta double-ub'saffi | beige | lixxa | 150.6 |
6 | karta | multicolor | lixxa | 95.4 |
7 | vinil | kannella | lixxa | 372 |
8 | suf | abjad | intaljat | 980.1 |
9 | drapp | roża | lixxa | 1166.5 |
It-tabella bl-fdalijiet - u disa rekords:
Ostatki | |
id_oboi | għadd |
1 | 8 |
2 | 12 |
3 | 24 |
4 | 9 |
5 | 16 |
6 | 7 |
7 | 24 |
8 | 32 |
9 | 11 |
Aħna jipproċedi għad-deskrizzjoni tal-ordni distinta SQL.
Poġġi distinta fil-klawsola Agħżel
argument distint għandu jitpoġġa immedjatament wara l-keyword Agħżel fil-mistoqsijiet. Huwa applikat għall-kolonni kollha speċifikati fis-sentenza Agħżel, minħabba li se jiġi eskluż mir-riżultat mistoqsija finali huwa kordi assolutament identiċi. Għalhekk, ladarba huwa biżżejjed li jkun speċifikat meta tikteb SQL «tagħżel distinti" talba. L-eċċezzjoni hija l-użu ta 'funzjonijiet distinti aggregati ġewwa li tħares lejn ftit aktar tard.
Għandu jiġi mfakkar li ħafna mill-database u ma tirrikonoxxix it-tip tiegħek ta 'talba:
TAGĦŻEL Ostatki.Count distinta, Oboi distinti. * MILL oboi Ġewwa jissieħbu Ostatki FUQ Oboi.id = Ostatki.id_oboi |
Hemm ma kienx ikkunsidrat l-argument diversi drabi jew darba speċifikat, iżda qabel it-tieni, it-tielet jew il-kolonna magħżula ieħor. Inti ser tirċievi żball li jirrigwarda żball fl sintassi.
Applikazzjoni mistoqsijiet distinti fl-istandard
Huwa ovvju li ma 'tabelli xierqa istruttura tal-bini u jimlewhom fi f'tabella waħda eskluża s-sitwazzjoni meta jkun hemm kordi assolutament identiċi. Għalhekk, l-eżekuzzjoni mistoqsija «Agħżel * distinti» ma 'kampjun ta' tabella waħda ma jkunx prattiku.
Ikkunsidra sitwazzjoni meta għandna bżonn inkunu nafu liema tip għandna wallpaper, biss għall-konvenjenza, biex issolvi skond it-tip:
TAGĦŻEL Oboi.type MILL ordni Oboi skond it-tip |
U tikseb ir-riżultati:
tip |
karta |
karta |
karta double-ub'saffi |
karta double-ub'saffi |
vinil |
vinil |
drapp |
suf |
suf |
Kif jidher fit-tabella hemm ringieli duplikat. Jekk aħna żid il-proposta Agħżel distinti:
TAGĦŻEL Oboi.type distinta MILL ordni Oboi skond it-tip |
irridu jiksbu l-riżultat mingħajr ripetizzjoni:
tip |
karta |
karta double-ub'saffi |
vinil |
drapp |
suf |
Għalhekk, jekk jidħlu sew id-data fit-tabella, imbagħad immedjatament wara telefonata jew talba ta 'xerrejja nistgħu risposta għal din l-wallpaper likwidu, fibreglass u wallpaper akriliku disponibbli fil-maħżen mhumiex. Minħabba li l-firxa ta 'ħwienet normalment mhux limitati għal mitt wallpaper, tara l-lista tat-tipi mhux uniku għandu jkun pjuttost xogħol intensiv.
Applikazzjoni ta 'funzjonijiet aggregati distinti fi ħdan
argument distint SQL jistgħu jintużaw ma 'kwalunkwe funzjoni aggregat. Iżda għall-Min u Max applikazzjoni tagħha se jkollha l-ebda effett, iżda meta tikkalkula s-somma jew il-valur medju rarament hija sitwazzjoni fejn l-ebda wieħed ikollu iqisu l-repetizzjonijiet.
Ejja ngħidu li rridu li jivverifika l-kapaċità ta 'maħżen tagħna u biex jibgħat din it-talba, jikkalkula n-numru totali ta' koljaturi fl-istokk:
somma TAGĦŻEL (Ostatki.count) MILL Ostatki |
Talba se tagħti r-risposta 143. Jekk, madankollu, aħna ser tinbidel għal:
somma TAGĦŻEL (Ostatki.count distinta) MILL Ostatki |
irridu jiksbu it-total 119, bħala wallpaper għal numri parti 3 u 7 huma fl-istokk fl-istess ammont. Madankollu, huwa ovvju li r-risposta hija żbaljata.
Użata ħafna drabi fil SQL Għadd funzjoni distinta. Allura, nistgħu faċilment issir taf kif ħafna tipi unika ta 'wallpaper, nagħmlu ikollhom:
għadd TAGĦŻEL (Oboi.type distinta) MILL oboi |
U tikseb ir-riżultat ta '5 - karta ordinarja u tal-vinil ta' saff doppju u drapp mhux minsuġ. Żgur kollha raw l-reklami bħal: "Huwa biss għandna aktar minn 20 tipi differenti ta 'wallpaper," li biha jfisser li dan il-ħanut huwa mhux biss ftit tużżana f'rombli u varjetà ta' tipi moderni wallpaper.
Huwa interessanti li fl-istess mistoqsija, inti tista 'tispeċifika l-funzjonijiet multipli bħal Għadd attribut distinti, u mingħajr ma. Dan huwa l-unika sitwazzjoni fejn distinta fil Select'e jista 'jkun preżenti diversi drabi.
Meta jabbandunaw l-użu tal-argument
Mill-użu ta 'l-argument SQL distinta għandha tiġi abbandunata f'waħda minn żewġ każijiet:
- Inti twettaq għażla ta 'tabelli u huma kunfidenti fil-valur uniku kull wieħed. F'dan il-każ, l-użu ta 'l-argument mhuwiex xieraq, minħabba li huwa piż addizzjonali fuq is-server jew klijent (skond it-tip ta' DBMS).
- Inti jibżgħu li jitilfu d-data tiegħek. Ejjew jispjegaw.
boxxla jissoponi jitlob li inti lista l-wallpaper li għandek, bl-indikazzjoni ta 'biss żewġ kolonni - it-tip u l-kulur. Mill-vizzju, inti tagħti argument distinti:
TAGĦŻEL Oboi.type distinti, Oboi.color MILL oboi ORDNI MILL Oboi.type |
U - jitilfu xi data:
tip | kulur |
karta | multicolor |
karta double-ub'saffi | beige |
vinil | kannella |
vinil | oranġjo |
drapp | roża |
suf | beige |
suf | abjad |
Dan jista 'jagħti l-impressjoni li l-wallpaper karta (konvenzjonali u saff doppju) għandna biss wieħed moħħ, fil-fatt, anki fit-tabella żgħira tagħna ta' żewġ artikolu (tirriżulta mingħajr distinti):
tip | kulur |
karta | multicolor |
karta | multicolor |
karta double-ub'saffi | beige |
karta double-ub'saffi | beige |
vinil | kannella |
vinil | oranġjo |
drapp | roża |
suf | abjad |
suf | beige |
Għalhekk, kif bil-miktub kwalunkwe talba mal-ħtieġa distinta argument li tkun attenta u kompetenti biex tiddeċiedi dwar l-applikazzjoni tagħha, skond il-kompitu.
alternattiva distinta
Kuntrarjament għall-argument distinta --argument Kulħadd. Fir-rikors tagħha ringieli duplikat huma maħżuna. Iżda bħala l-database default u jsib li huwa neċessarju li juri l-valuri, l-argument kollha - huwa pjuttost jikkwalifika milli l-argument funzjoni attwali.
Similar articles
Trending Now