Articles

luodaan täysin satunnaisotos aineistosta

tämä on toinen artikkeli lyhyessä SQL Server-kyselyn haasteiden sarjassa testata ja laajentaa SQL Server-kyselytaitojasi. Vaikka mikään näistä lyhyt artikkeleita on ylivoimainen monimutkaisuus, ne toivottavasti joko opettaa sinulle jotain uutta tai auttaa aktivoimaan mahdollisesti lepotilassa SQL taitoja valmisteltaessa seuraavan reaalimaailman haaste. Loput artikkelit näet kyselyn vastaukset SQL Server-sivulla.

tässä artikkelissa kuvitellaan jälleen kerran, että työskentelet Prestige Cars Ltd-nimiselle pienelle klassikkoautokauppiaalle käyttäen yrityksen tietokannassa olevia tietoja.

toimitusjohtaja haluaa soittaa sattumanvaraisesti kouralliselle asiakkaita ja kysyä heiltä Prestige-autoista saamastaan palvelusta. Hän pyytää sinua laatimaan täysin satunnaisen myyntilistan asiaankuuluvien asiakkaiden kanssa.

haaste

sinun haasteesi on keksiä SQL täyttääkseen hänen pyyntönsä. Tässä yksi mahdollinen ratkaisu:

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

tämän koodin suorittaminen antaa tulokset, jotka näet kuvassa 1.

Kuva 1. Satunnaistuloksen tuottaminen taulukosta käyttäen newid()

miten se toimii

T-SQL: llä on funktio NEWID (), joka lisää tietueeseen 32-merkkisen yksilöllisen aakkosnumeerisen tunnisteen. Tämä merkkijono on taatusti ainutlaatuinen SQL Server. Sen lisäksi sen rakenne on täysin sattumanvarainen, eli sen syntytavalle ei ole olemassa järjestystä tai järjestystä.

tämä kysely käyttää NEWID-tunnistetta() satunnaistaakseen tiedonvalinnan näin:

ensimmäinen

kirjoitat yksinkertaisen kyselyn palauttaaksesi tiedot SalesByCountry-näkymästä. Tämä näkymä yhdistää kaikki tarvittavat taulukot taustalla olevaan tietokantaan, jota tarvitset tuottaaksesi mielekästä tietoa.

sitten

lisäät newid () – kentän kyselyn ulostuloon tuottaaksesi täysin satunnaistunnisteen. Newid () – kentän ei tarvitse olla aineistoon lisättävässä select-lausekkeessa. Lisäämällä se lausekkeittain järjestykseen lisää kentän, mutta ilman, että se on näkyvissä.lajittelemalla tiedot tämän kentän avulla, sinulla on tietuesarja satunnaisessa lajittelujärjestyksessä.

lopulta

lisätään select-lausekkeeseen n-prosentin ylälause, jolloin saadaan vain ensimmäiset pari prosenttia (tässä esimerkissä 5 prosenttia) tietuesarjasta.

lopputulos on satunnainen osajoukko tietokannasta.

temput ja ansat

tästä tekniikasta on vielä yksi huomautus. Jos haluat nähdä, miltä jokin näistä yksilöllisistä tunnistekentistä näyttää, voit suorittaa koodin kuten seuraava katkelma:

SELECT NEWID()FROM Data.SalesByCountry

tämä antaa sellaisen tuloksen, että näet kuvassa 2.

kuva 2. Luodaan yksilöllisiä tunnisteita käyttäen NEWID ()

That ’ s it. Olet nähnyt yksinkertaisen esimerkin siitä, miten luoda täysin satunnainen näyte lähtö aineisto. Jatka tarkkailua SQLServerCentral.com valmis tämän kirjoitussarjan seuraavaan kirjoitukseen.

tämä artikkeli on sovitettu Adam ja Karine Aspinin kirjasta” Query Answers with SQL Server Volume II: in-Depth Querying”. Saatavana sekä paperback ja eBook kaikki hyvät jälleenmyyjät kuten Amazon, Kobo ja iBooks, sekä kaikki hyvät kirjakaupat.

otostiedot ovat saatavilla joko tämän artikkelin liitteenä olevassa aineistossa tai Tetras Publishing-verkkosivustolla osoitteessa: www.tetraspublishing.com/sqlserver.

sarja

tässä sarjassa on useita artikkeleita. Näet ne kaikki kyselyn vastaukset-sivulla.

Vastaa

Sähköpostiosoitettasi ei julkaista.