Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Seleziona in modo efficiente righe casuali da un set di risultati di grandi dimensioni con LINQ (ala TABLESAMPLE)

Non è una risposta diretta alla tua domanda, ma puoi utilizzare questa tecnica per selezionare un campione percentuale casuale di singole righe. La query seguente utilizza la funzione NEWID per restituire circa l'uno percento delle righe della tabella Sales.SalesOrderDetail:

SELECT * FROM Sales.SalesOrderDetail   
WHERE 0.01 >= CAST(CHECKSUM(NEWID(), SalesOrderID) & 0x7fffffff AS float) / CAST (0x7fffffff AS int)

Possibilmente di interesse:T-SQL :Generazione di numeri casuali, campionamento casuale e "bontà" casuale