, často při použití SQL na vzorku dat z tabulky, uživatelských redundantních dat, které jsou k dispozici zcela identické opakované linky. Pro odstranění tohoto stavu pomocí SQL zřetelné tvrzení ve větě Select. Tento článek se bude diskutovat o příklady tohoto argumentu, a situace, v nichž by mělo být použití argumentu opuštěné. Než začneme zvažovat konkrétní příklady, vytvoříme v databázi několik požadovaných tabulek.
Příprava tabulky
Vyplňte tabulky s údaji. Tabulka tapet přidat 9 položek:
,
Oboi
Číslo hodnoty
typu
barvy
struct
, cena
1
papíru
Multykolor
Reliéfní
569
(51 )
, 2
papíru dvouvrstvá
béžová
hladký (66 )
, 1148
3
vinyl
Oranžová
Reliéfní
504
4
(97 ) vložka
Beige
Reliéfní
, 10209
5
papíru dvojité vrstvě
,
Beige
, Smooth
, 1506
,
,
,
6
papíru
Multykolor
, hladký
, 954 (150 )
7
vinyl
, Brown
Hladké
, 372
8
v propojení
(181 ) bílé
Reliéfní
, 9801
,
,
,
, 9
Látka
Pink
, Smooth
, 11665
Tabulka s ostatky - a devět ' pět záznamy:
Ostatki
id_oboi
počtu
1
,
,
,
8
2
12
3
24
4
, 9
5
16
6
7
(272 )
7
24
8
32
9
11
Začneme s popisem objednávky použití odlišné v SQL.
Umístěte ve větě Zvolte zřetelné
Je třeba připomenout, že většina databází a nerozpozná formuláře žádosti:
SELECT zřetelný Ostatki.Count, odlišný Oboi * FROM Oboi INNER JOIN Ostatki ON Oboi. .id = Ostatki.id_oboi
zkoumal několikrát uvedeno nebo uvedené tvrzení, jednou, ale před druhým, třetím nebo jiné vыbyraemыm sloupci. V syntaxi se zobrazí chyba s odkazem na nepřesnosti.
Použití odlišné standardní požadavek
SELECT Oboi.type FROM Oboi pořadí podle typu
a získat výsledek :
,
, typ
papíru
papíru
papíru dvouvrstvá (327 )
papíru dvouvrstvá
vinyl
vinyl
tkanina
v propojení
v propojení
Jak je vidět v tabulce existují duplicitní řádky. Přidáme-li větu Vyberte odlišný:
SELECT zřetelný Oboi.type FROM Oboi pořadí podle typu
dostaneme výsledek bez opakování:
typu
papíru
papíru dvouvrstvá
vinyl
tkaniny
Flizelin
TakovéV souladu s tím by měly být provedeny správně uvedeny v tabulce najednou na volání či přání zákazníků můžeme odpovědět, že kapalina tapety, tapety a akrylové Krycí k dispozici v obchodě zde. Vzhledem k tomu, že sortiment v obchodech není obvykle omezen na sto tapet, seznam ne-jedinečných typů by byl docela pracný.
Použití odlišných v souhrnných funkcích
SELECT sum (Ostatki.count) FROM Ostatki
Žádost vydá odpověď 143 . Pokud změníme na:
SELECT sUM (zřetelný Ostatki.count) FROM Ostatki
dostaneme 119 jako tapetu podle článku 3 a 7 jsou na skladě ve stejné výši. Je však zřejmé, že tato odpověď je nesprávná. Často se používá SQL s funkcí Count. Tak můžeme snadno vidět, jak mnoho jedinečných druhů tapet jsme všichni
SELECT count (zřetelný Oboi.type) FROM Oboi
5 a získat výsledky - obvyklý dvouvrstvý papír, vinyl, tkaniny a bambusu. Pravděpodobně všichni viděli reklamy, jako je: „Jen máme více než 20 různých druhů tapet!“, Podle něhož je zřejmé, že se nejedná o obchod pár desítek rolí a tapetyrůzné moderní typy. Je zajímavé, že v jednom dotazu můžete zadat několik funkcí Count s odlišným atributem nebo bez něj. To znamená, že toto je jediná situace, kdy se v Selektu může lišit několikrát.
Pokud se vzdát tvrzení
SELECT zřetelný Oboi.type, Oboi.color FROM Oboi ORDER BY Oboi.type
I - ke ztrátě některých dat:
typu
barva
papír
Multykolor
papíru dvouvrstvá
Beige
vinyl
, Brown
,
, vinyl
, oranžová
tkaniny
Pink
(450 )
, vložka
Beige
v propojení
bílé
Mo ale vyvolávají dojem, že papírové tapety (konvenční a dual-layer) máme jen jeden druh, ve skutečnosti i v naší malé tabulce dvou bodu (za následek neliší):
typu
,
, barva
papíru
Multykolor
papíru
Multykolor
papíru dvouvrstvá
Vinyl
, Brown
vinyl
, oranžová
tkaniny
,
,
, Pink
v propojení
bílé
v propojení (541 )
Beige
Proto, jak je písemně jakoukoliv žádost odlišný argument by měl být čistý a dobře vichřice Problémy uvaty se jeho použití v závislosti na úkolu.