MS SQL - wybieranie X liczby losowych recordów z zakresu czasowego

0

Witam
Mam tabelę do której co 1sek.dodawany jest nowy rekord liczba kolumn w tabeli 120.
Chciałbym odczytać dane zakresu czasowego np. 2005 - 2014 roku ale z ograniczeniem do np. 1000 rekordów, które później dodam do wykresu.
Problem w tym że sama metoda np. TOP 1000 pobiera pierwsze 1000 rekordów.
Ja potrzebuje żeby np. z 100 tyś wybrał losowo 1000 rekordów lub synchronicznie odczytywał co 100 rekord (100 000/1000 = 100).

0

Zmień ORDER BY na jakiś pseudolosowy.

0

Ok. dobra myśl ale potrzebuje by dane były wyświetlane rosnąco wg daty i "order by" mam już zarezerwowane dla pola ORDER BY datetime
Jeżeli wykonam
SELECT TOP 1000 *
FROM Table1
ORDER BY NEWID()

Żeby posortować dane ponownie daty musiał bym utworzyć kopie wyników.

0

OK. Mam dzięki
SELECT TOP 1000 * FROM Flags ORDER BY NEWID(),unixtime DESC

0

Lepiej
SELECT * FROM (SELECT TOP 1000 * FROM Flags ORDER BY NEWID()) As Result ORDER BY unixtime DESC

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