MS-SQL Zapytanie-losowy wybór kilku rekordów

0

Witam,
Potrzebuje stworzyć zapytanie, które z tabeli zawierającej nazwy komputerów rozmieszczonych w różnych site'ach AD wybierze losowo po 5 komputerów z każdego site'a.
Bardzo proszę o pomoc, gdyż nie mogę wymyślić nic sensownego.

0

Pierwszy wynik w google po wpisaniu: "MSSQL rand record": http://stackoverflow.com/questions/19412/how-to-request-a-random-row-in-sql

0

Witam,

może coś w ten deseń:

Select * From
(
SELECT CL.ComputerID, CL.Name, 
 
ROW_NUMBER() OVER( ORDER BY CL.ComputerID) AS Pozycja
 
FROM ActiveDirectory.ComputersList CL
) a
Where a.Pozycja = CONVERT(INT, 10 * RAND())

Dodać do tego, 5 wyników i ograniczyć losową liczbę do max liczby compów w AD i powinno być git.

Edit: @Juhas był szybszy :D I w sumie podał link do bardziej eleganckiego rozwiązania :)

0

@Juhas
Nie wiem czy się dobrze zrozumieliśmy.
Moja tabela zawiera dwa pola: "Nazwa komputera" i "Site AD"
Rekordów jest powiedzmy 15k. W polu SITE AD jest ok 20 unikatowych warotści.
Potrzebuje zapytanie, które wybierze z tabeli po 10 komputerów, kazdego site'a.

0

Aha. Ciekawy problem. Nie mam teraz pod ręką SQLa, ale rzuca mi się od razu grupowanie. Może coś pod tym kątem.

2
SELECT
    sitead
    ,nazwakomputera
FROM (
    select
        row_number() over(partition by sitead order by newid()) r,
        sitead
        ,nazwakomputera 
    from 
        tabela) as dt
WHERE
    r < 11
0

@Panczo
Wielkie dzięki - działa

1 użytkowników online, w tym zalogowanych: 0, gości: 1