Réaliser un échantillon aléatoire représentatif sous SQL SERVER

cs_javotte Messages postés 42 Date d'inscription mardi 4 mai 2004 Statut Membre Dernière intervention 13 décembre 2006 - 29 nov. 2005 à 13:06
aieeeuuuuu Messages postés 698 Date d'inscription jeudi 16 janvier 2003 Statut Membre Dernière intervention 20 mai 2011 - 30 nov. 2005 à 10:23
Bonjour,



Je travaille sur SQL SERVER et une base de données constituée de plus
de 400 000 contrats. J'aimerais constituer un échantillon représentatif
de ma population. Je sais que je peux le réaliser en programmant un max
mais je me demandais s'il n'existerait pas une fonction pouvant choisir
aléatoirement des IDcontrats dans une table suivant des critères...



Si qqun l'a déjà fait, ça m'intéresserait d'en discuter.





Javotte

3 réponses

aieeeuuuuu Messages postés 698 Date d'inscription jeudi 16 janvier 2003 Statut Membre Dernière intervention 20 mai 2011 3
29 nov. 2005 à 15:56
salut,

je suppose que tes contrats ont un identifiant unique... ?

si c'est bien le cas, voici une soluion théorique a mettre en oeuvre (dans une proceédure stockée)

1 - création d'une table temporaire contenant les ID de contrat tirés au hasard
2 - dans une boucle, tu tire un nombre au hasard allant de 1 a ton ID Max de contrat, et si il n'est pas déja dans la table temporaire et qu'un contrat porte bien ce nombre, tu le rajoutes dans la table temporaire
3 tu fait tourner la boucle jusqu'a ce que ta table temporaire contienne le nombre de contrat que tu veux tirer
4 tu recupere dans ta table contrat tous les contrat dont les ID sont dans ta table temporaire
0
cs_javotte Messages postés 42 Date d'inscription mardi 4 mai 2004 Statut Membre Dernière intervention 13 décembre 2006
29 nov. 2005 à 20:46
Merci d'avoir répondu aussi vite.

Je vais esayer de mettre en oeuvre ton idée... j'avais vu qu'il
existait une fonction rand sous sql server mais je ne voyais pas
comment m'en servir...
0
aieeeuuuuu Messages postés 698 Date d'inscription jeudi 16 janvier 2003 Statut Membre Dernière intervention 20 mai 2011 3
30 nov. 2005 à 10:23
ok, si tu as besoin d'aide sur un point precis n'hesite pas...
et bon courage :)
0
Rejoignez-nous