Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Sélection d'un echantillon de n% des enregistrements sous SQL2K

3 réponses
Avatar
Denis
Bonjour,

Je souhaite faire une sélection aléatoire de n% des enregistrements de ma
table (échantillon).

Comment faire ?

Aloha, 2nis

3 réponses

Avatar
SQLpro
SELECT TABLE SAMPLE n PERCENT *
FROM MaTable

A +

On 26 jan, 14:16, Denis wrote:
Bonjour,

Je souhaite faire une sélection aléatoire de n% des enregistrements d e ma
table (échantillon).

Comment faire ?

Aloha, 2nis


Avatar
Fr
Bonjour,
Je ferais ...

Sur SQLServer 2005 :
DECLARE @n INT
SET @n /* pourcentage souhaité */

SELECT TOP (@n) PERCENT *
FROM MaTable
ORDER BY NEWID()


Sur SqlServer 2000 le nombre de ligne (ou le pourcentage) n'est pas
paramétrable. Il faudra dans ce cas construire la requete dans une chaine
puis executer cette chaine avec sp_executesql ou EXEC

DECLARE @chaine nvarchar(4000)
DECLARE @n int
SET @n /* pourcentage souhaité */

SET @chaine='SELECT TOP '+@n+' PERCENT * FROM MaTable ORDER BY NEWID()'
EXEC sp_executesql @chaine
ou alors
EXE(@chaine)

Voilà ... mais peut-être que quelqu'un à mieux. Le ORDER BY sur le NEWID()
n'est pas hyper performant sur des gros volumes !






"Denis" a écrit dans le message de news:

Bonjour,

Je souhaite faire une sélection aléatoire de n% des enregistrements de ma
table (échantillon).

Comment faire ?

Aloha, 2nis


Avatar
Denis
Merci por ces réponses

2nis

"" wrote:

Bonjour,
Je ferais ...

Sur SQLServer 2005 :
DECLARE @n INT
SET @n /* pourcentage souhaité */

SELECT TOP (@n) PERCENT *
FROM MaTable
ORDER BY NEWID()


Sur SqlServer 2000 le nombre de ligne (ou le pourcentage) n'est pas
paramétrable. Il faudra dans ce cas construire la requete dans une chaine
puis executer cette chaine avec sp_executesql ou EXEC

DECLARE @chaine nvarchar(4000)
DECLARE @n int
SET @n /* pourcentage souhaité */

SET @chaine='SELECT TOP '+@n+' PERCENT * FROM MaTable ORDER BY NEWID()'
EXEC sp_executesql @chaine
ou alors
EXE(@chaine)

Voilà ... mais peut-être que quelqu'un à mieux. Le ORDER BY sur le NEWID()
n'est pas hyper performant sur des gros volumes !






"Denis" a écrit dans le message de news:

> Bonjour,
>
> Je souhaite faire une sélection aléatoire de n% des enregistrements de ma
> table (échantillon).
>
> Comment faire ?
>
> Aloha, 2nis