Vous n'êtes pas identifié(e).
Pages : 1
Bonjour,
y'a t-il moyen de demander à postgresql de me renvoyer n lignes au hasard dans une requete (a l'instar de limit ou offset) genre select * from ma_table sample 100 pour récuperer 100 lignes au pif !
Cordialement
Hors ligne
Pas simplement non. Et avec de bonnes performances encore moins. Ça a besoin d'être rapide ?
Marc.
Hors ligne
Par nécessairement, c'est pour faire de l'échantillonage occasionel, tirage au sort sans remise.
Faut-il passer par un create function en pl/pgsql ?
Hors ligne
La seule solution simple à ma connaissance est :
select * from ma_table order by random() limit 100
Guillaume.
Hors ligne
Bonsoir,
ça me convient parfaitement en terme de simplicité
Merci beaucoup
Hors ligne
Le défaut de la solution c'est :
- full scan de la table
- calcul d'une fonction random pour chaque enregistrement (c'est coûteux)
- tri sur les enregistrements (c'est aussi très coûteux).
Bref, c'est juste pour dire que ça marche, mais qu'il ne faut vraiment pas l'exécuter toutes les secondes…
Marc.
Hors ligne
Effectivement, je vois que le temps d'exécution de la requête est long, mais c'est du cas par cas pour tirer une liste de dossier au sort et aller les controler, donc rien de critique en terme de performances.
merci encore à tous
Hors ligne
Pages : 1