ÒdinatèKalite dosye

SQL distenk: Deskripsyon, egzanp, pwopriyete

Anpil fwa lè ou sèvi ak SQL rekipere done ki sòti nan tab yo, itilizatè a resevwa done yo redondants se egzistans lan nan yon absoliman ki idantik ranje kopi. Pou evite sitiyasyon sa a, sèvi ak SQL distenk agiman nan fraz la Chwazi. Atik sa a pral diskite sou egzanp yo itilize a nan sa a agiman, osi byen ke sitiyasyon an ki ta dwe aplikasyon an dwe abandone pa agiman an.

Anvan nou kontinye nan konsidere egzanp yo espesifik, kreye baz done ki nesesè yo yon koup la tab.

tab preparasyon

Imajine ke nou gen yon magazen baz done enfòmasyon sou papye a prezante nan de tab. Sa a oboi tab (photo) ak jaden id (inik idantifyan), nan kalite (kalite a nan photo -. Papye, vinil, elatriye), koulè (koulè), yon struct (estrikti) ak pri (pri a). Ak tablo Ostatki (résidus) ak jaden id_oboi (yon referans nan idantifyan a inik nan tablo a Oboi) ak konte (nimewo a nan woulo nan stock).

Ranpli tablo done yo. Nan tablo a ajoute D 'a 9 dosye:

Oboi

id

kalite

koulè

struct

pri

1

papye

multikolor

Relief

56.9

2

papye doub-kouch

bèlj

lis

114,8

3

vinil

Orange

Relief

504

4

polèr

bèlj

Relief

1020,9

5

papye doub-kouch

bèlj

lis

150.6

6

papye

multikolor

lis

95.4

7

vinil

mawon

lis

372

8

polèr

blan

Relief

980,1

9

moso twal

woz

lis

1166,5

tab la avèk kadav yo - ak nèf dosye:

Ostatki

id_oboi

konte

1

8

2

12

3

24

4

9

5

16

6

7

7

24

8

32

9

11

Nou kontinye nan deskripsyon an nan lòd la distenk nan SQL.

Kote distenk nan kloz a Chwazi

distenk agiman ou dwe mete yo imedyatman apre mo kle a Chwazi nan demann yo. Li aplike nan tout kolòn yo espesifye nan fraz Chwazi a, paske li pral dwe pou ekskli nan rezilta a rechèch final la se strings absoliman ki idantik. Se konsa, yon fwa se ase yo presize lè li ap ekri SQL «chwazi distenk» demann. Eksepsyon a se itilize nan diferan fonksyon total andedan ki gade nan yon ti kras pita.

Li ta dwe vin chonje ki pi fò nan baz done a epi yo pa rekonèt kalite ou nan demann:

CHWAZI distenk Ostatki.Count, distenk Oboi *.

KI SOTI NAN oboi

INNER JOIN Ostatki SOU Oboi.id = Ostatki.id_oboi

Gen pa te konsidere kòm agiman plizyè fwa oswa yon fwa espesifye, men anvan dezyèm lan, twazyèm oswa yon lòt kolòn chwazi. Ou pral resevwa yon erè refere li a yon erè nan sentaks.

Aplikasyon queries plase distenk nan estanda

Li se evidan ke ak bon bilding estrikti tab ak ranpli yo nan yon tab sèl eskli sitiyasyon an lè gen strings absoliman ki idantik. Se poutèt sa, nan ekzekisyon an demann «Chwazi diferan *» ak yon echantiyon nan yon sèl tab la se Inposibl.

Konsidere yon sitiyasyon lè nou bezwen konnen ki kalite nou gen D ', jis pou konvenyans, sòt pa di ki kalite:

chwazi Oboi.type

KI SOTI NAN Oboi lòd pa di ki kalite

Epi pou yo jwenn rezilta yo:

kalite

papye

papye

papye doub-kouch

papye doub-kouch

vinil

vinil

moso twal

polèr

polèr

Jan yo wè nan tablo a gen ranje kopi. Si nou ajoute pwopozisyon an Chwazi distenk:

CHWAZI distenk Oboi.type

KI SOTI NAN Oboi lòd pa di ki kalite

nou jwenn rezilta a san yo pa repetisyon:

kalite

papye

papye doub-kouch

vinil

moso twal

polèr

Se konsa, si byen antre nan done nan yon tab, Lè sa a, imedyatman apre yon apèl nan telefòn oswa demann nan achtè nou ka reponn ke photo likid, vèr yo ak Acrylic photo disponib nan magazen an yo pa. Etandone ke seri a nan boutik se anjeneral pa limite a yon santèn photo, wè lis la nan kalite yo ki pa inik ta dwe byen travay-entansif.

Aplikasyon nan fonksyon diferan total nan

ka SQL agiman distenk dwe itilize ak nenpòt ki fonksyon total. Men, pou min ak Max aplikasyon an li yo pral pa gen okenn efè, men lè yo kalkilte sòm total la oswa valè an mwayèn se raman yon sitiyasyon kote pesonn pa ta dwe pran an kont repetisyon yo.

Sipoze nou vle tcheke kapasite a nan depo nou yo ak voye demann sa a, òdinatè kantite total anwoulman nan stock:

Chwazi sòm (Ostatki.count)

KI SOTI NAN Ostatki

Mande pral ba repons lan 143. Si, toutfwa, n ap chanje nan:

Chwazi sòm (distenk Ostatki.count)

KI SOTI NAN Ostatki

nou jwenn total 119 an, menm jan D 'pou nimewo pati 3 ak 7 yo nan stock nan menm kantite lajan an. Sepandan, li se evidan ke repons lan se sa ki mal.

Pi souvan yo itilize nan SQL distenk fonksyon Konte. Se konsa, nou ka fasilman jwenn konnen ki jan anpil kalite inik nan photo, nou gen:

Chwazi konte (distenk Oboi.type)

KI SOTI NAN oboi

Epi pou yo jwenn rezilta a nan 5 - papye òdinè ak doub-kouch vinil ak twal ki pa Peye-trikote. Se vre wi tout wè reklam yo tankou: "Se sèlman nou gen plis pase 20 diferan kalite photo," pa ki se vle di ke boutik sa a se woulo pa sèlman yon koup douzèn ak yon varyete D 'kalite modèn.

Li se enteresan ki nan rechèch la menm, ou ka presize fonksyon miltip tankou Konte atribi distenk, ak san li. Sa se sitiyasyon an sèlman kote distenk nan Select'e ka prezan plizyè fwa.

Lè vle abandone itilize nan agiman an

Nan sèvi ak nan SQL agiman diferan ou ta dwe abandone nan youn nan de ka:

  1. Ou fè yon seleksyon nan tab ak gen konfyans nan valè a inik chak. Nan ka sa a, itilize nan agiman an se apwopriye, paske li se yon chaj adisyonèl sou sèvè a oswa kliyan (ki depann sou kalite a nan DBMS).
  2. Èske ou pè pou yo pèdi done ou. Se pou nou eksplike.

Sipoze bòs nan travay mande w nan lis photo la ki di ou gen, ak endikasyon nan sèlman de kolòn - kalite a ak koulè. Soti nan abitid, ou bay yon agiman distenk:

CHWAZI distenk Oboi.type, Oboi.color

KI SOTI NAN oboi

LÒD PA Oboi.type

Lè - pèdi kèk done:

kalite

koulè

papye

multikolor

papye doub-kouch

bèlj

vinil

mawon

vinil

Orange

moso twal

woz

polèr

bèlj

polèr

blan

Li ka bay enpresyon ke photo a papye (konvansyonèl ak double-kouch) nou te sèlman yon sèl tèt ou, an reyalite, menm nan ti tab nou an nan de atik (rezilta san yo pa diferan):

kalite

koulè

papye

multikolor

papye

multikolor

papye doub-kouch

bèlj

papye doub-kouch

bèlj

vinil

mawon

vinil

Orange

moso twal

woz

polèr

blan

polèr

bèlj

Se poutèt sa, tankou nan ekri nenpòt demann ak bezwen an agiman distenk dwe fè atansyon ak konpetan deside sou aplikasyon li yo, tou depann de travay la.

altènatif distenk

Kontrèman ak agiman an distenk - Tout agiman. Nan aplikasyon li yo ranje kopi yo estoke. Men, jan baz done a default epi li jwenn ke li se nesesè yo montre tout valè yo, agiman an tout - li se pito yon kalifye pase agiman an fonksyon vrè. Nou espere ke ou kounye a konprann ki diferan (SQL) itilize. Deskripsyon ba ou tout enfòmasyon sou posibilite a nan lè l sèvi avèk agiman sa a nan rezoud pwoblèm diferan. Apre yo tout, kòm li te tounen soti, menm tankou yon agiman senp nan aplikasyon li yo kache trè byen mèb posiblite pou pèdi kèk done epi montre enfòmasyon kòrèk.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

Copyright © 2018 ht.birmiss.com. Theme powered by WordPress.