Jaki jest najlepszy sposób sortowania wyników kwerendy sql w kolejności losowej w procedurze przechowywanej?Sortowanie losowe serwera SQL
Odpowiedz
To jest duplikat SO# 19412. Oto odpowiedź dałem tam:
select top 1 * from mytable order by newid()
W SQL Server 2005 iw górę, można użyć TABLESAMPLE dostać losową próbkę, która jest powtarzalna:
SELECT FirstName, LastName FROM Contact TABLESAMPLE (1 ROWS) ;
Chociaż nie jest to najlepsza odpowiedź na inne pytanie związane z: http://stackoverflow.com/questions/19412/how-to-request-a-randomflow-in-sql –
To pytanie nie jest dokładnym duplikatem SO # 19412, który prosi o losowy wiersz z zapytania, nawet jeśli jest to zaznaczone jako odpowiedź, ponieważ daje to tylko 1 wiersz, a nie wyniki losowego sortowania zapytania. –
Wskazówka TABLESAMPLE jest złota! – Kong
select foo from Bar order by newid()
Nie można po prostu zamówić RAND(), jak wiadomo, ponieważ wygeneruje tylko jedną wartość. Tak więc użyj klucza do wartości początkowej.
SELECT RAND(object_id), object_id, name FROM sys.objects ORDER BY 1
też użyć następującej kwerendy, która zwraca się lepszym losowy wynik próbki:
SELECT * FROM a_table WHERE 0.01 >= CAST(CHECKSUM(NEWID(), a_column) & 0x7fffffff AS float)/CAST (0x7fffffff AS int)
0,01 oznacza ~ 1 procent wszystkich wierszy.
Cytat SQL 2008 Books Online:
Jeśli naprawdę chcesz losową próbkę poszczególnych rzędach, zmodyfikować zapytanie do odfiltrować wiersze losowo zamiast użyciu TABLESAMPLE.
To działa wolniej niż TABLESAMPLE i jest szybsze niż ORDER BY NEWID() na dużym stole. – endo64
Gdy szukałem losowego próbkowania z wyników zapytania, to konkretne rozwiązanie dało mi to, czego szukałem, chociaż odpowiedź Harpo zamawiałaby losowo wyniki. –
- 1. Stały/powtarzalny sortowanie losowe (MySQL, Rails)
- 2. Zapytanie o sortowanie SQL alchemiczne sortowanie sortowania
- 3. Sortowanie SQL i łączniki
- 4. SQL Server Sortowanie
- 5. SQL Server 2012 Losowe ciągi z listy
- 6. Jak generować losowe dane w serwerze SQL
- 7. Oracle Sortowanie SQL 10g VARCHAR2
- 8. datatables jquery, niestandardowe sortowanie po stronie serwera
- 9. Ograniczenie FILESTREAM serwera SQL
- 10. Funkcje serwera SQL CLR
- 11. Skrypty Uprawnienia serwera SQL
- 12. Wywoływanie połączonego serwera sql
- 13. Porównanie stringów serwera SQL
- 14. Parametry serwera SQL xp_delete_file
- 15. Przykład wstawienia serwera SQL
- 16. Sortowanie serwera SQL zgodnie z niewrażliwym na wielkość liter w języku Java Porównanie Unicode
- 17. Problem dotyczący sortowania i sortowania serwera SQL
- 18. Losowe liczby Java nie są losowe?
- 19. Jak wybrać sortowanie bazy danych SQL Server
- 20. Serwer SQL Wybierz * Sortowanie nazw kolumn
- 21. Sortowanie tabeli Sql przy użyciu kolumny alias
- 22. Sortowanie alfanumeryczne na serwerze Sql 2008
- 23. Tymczasowo wstrzymaj replikację serwera SQL
- 24. Domyślny datownik daty serwera SQL?
- 25. Role serwera SQL, schematy, użytkownicy
- 26. Błąd logowania do serwera SQL
- 27. Dekodowanie adresu URL serwera SQL
- 28. Pole serwera SQL zostaje obcięte
- 29. skrypt kopii zapasowej serwera SQL
- 30. newid() wewnątrz funkcji serwera sql
możliwe duplikat [Jak zwrócić losowe wiersza w SQL?] (Http://stackoverflow.com/questions/19412/how-to-request-a-random-row-in-sql) – exhuma