Articles

generování zcela náhodného ukázkového výstupu z datové sady

Toto je druhý článek v krátké sérii dotazů na SQL Server, který otestuje a rozšíří vaše dovednosti dotazování na SQL Server. I když žádný z těchto krátkých článků není ohromující složitosti, doufejme, že vás buď naučí něco nového, nebo vám pomůže znovu aktivovat potenciálně spící dovednosti SQL v přípravě na vaši další výzvu v reálném světě. Zbytek článků můžete vidět na stránce odpovědi na dotazy s SQL Serverem.

v tomto článku si znovu představíme, že pracujete pro malého prodejce klasických automobilů s názvem Prestige Cars Ltd pomocí údajů, které jsou v databázi společnosti.

generální ředitel chce náhodně zavolat hrstku klientů a zeptat se jich na službu, kterou obdrželi od Prestige Cars. Požádá vás, abyste vytvořili zcela náhodný seznam prodejů s příslušnými zákazníky.

výzva

vaším úkolem je přijít s SQL uspokojit její požadavek. Zde je jedno možné řešení:

SELECT TOP 5 PERCENT *FROM Data.SalesByCountryORDER BY NEWID()

spuštění tohoto kódu přináší výsledky, které můžete vidět na obrázku 1.

Obrázek 1. Generování náhodného výstupu z tabulky pomocí NEWID ()

jak to funguje

T-SQL má funkci NEWID (), která přidává do záznamu jedinečný alfanumerický identifikátor 32 znaků. Tento řetězec je zaručeno, že bude jedinečný SQL Server. Nejen to, ale jeho struktura je zcela náhodná; to znamená, že neexistuje žádná sekvence nebo pořadí způsobu, jakým je generována.

tento dotaz používá NEWID () k náhodnému výběru dat, jako je tento:

nejprve

napíšete jednoduchý dotaz SELECT pro vrácení dat z pohledu SalesByCountry. Tento pohled spojuje všechny požadované tabulky v podkladové databázi, které potřebujete k výstupu smysluplných dat.

pak

přidáte do výstupu z dotazu pole NEWID (), čímž vytvoříte zcela náhodný identifikátor. Pole NEWID() nemusí být v klauzuli SELECT, která má být přidána do datové sady. Přidání do klauzule pořadí podle stále přidává pole, ale aniž by bylo viditelné; takže tříděním dat pomocí tohoto pole máte sadu záznamů v náhodném pořadí řazení.

nakonec

do klauzule SELECT přidáte klauzuli TOP N PERCENT pro výstup pouze prvních několika procent (v tomto příkladu 5 procent) sady záznamů.

konečným výsledkem je náhodná podmnožina dat z databáze.

triky a pasti

máme jeden komentář k této technice. Pokud chcete vidět, jak vypadá jedno z těchto polí jedinečného identifikátoru, můžete spustit kód jako následující úryvek:

SELECT NEWID()FROM Data.SalesByCountry

to dává druh výsledku, který můžete vidět na obrázku 2.

Obrázek 2. Generování jedinečných identifikátorů pomocí NEWID ()

to je vše. Viděli jste jednoduchý příklad, jak generovat zcela náhodný ukázkový výstup z datové sady. Sledujte dál SQLServerCentral.com připraveno pro další článek v této sérii.

tento článek je převzat z knihy“ Query Answers with SQL Server Volume II: In-Depth Querering “ od Adama a Karine Aspinových. K dispozici jako brožovaná i elektronická kniha od všech dobrých prodejců, včetně Amazonu, Kobo a iBooks, stejně jako všech dobrých knihkupectví.

ukázkové údaje jsou k dispozici buď v průvodním materiálu k tomuto článku, nebo na webových stránkách Tetras Publishing na adrese: www.tetraspublishing.com/sqlserver.

série

v této sérii je řada článků. Všechny je můžete vidět na stránce odpovědi na dotazy.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.