Maison >base de données >tutoriel mysql >Comment puis-je sélectionner efficacement un pourcentage aléatoire de lignes dans SQL Server ?
Sélection de lignes aléatoires simplifiée dans SQL Server : une approche rationalisée
Les utilisateurs de SQL Server doivent fréquemment sélectionner un échantillon aléatoire de lignes dans une table. Trouver une méthode propre et efficace pour cela a toujours été problématique. Cet article présente une solution simplifiée.
Les tentatives précédentes impliquaient souvent des tables temporaires complexes et des processus itératifs. Bien que la fonction NEWID()
offre du potentiel, la sélection fiable d'un pourcentage précis s'est avérée difficile.
Voici une solution concise et efficace :
<code class="language-sql">SELECT TOP 10 PERCENT * FROM [yourtable] ORDER BY NEWID()</code>
Cette requête utilise ORDER BY NEWID()
pour mélanger les lignes de manière aléatoire. TOP 10 PERCENT
sélectionne ensuite les 10 % supérieurs de ces lignes mélangées.
Pour les tables de grande taille, une approche optimisée en termes de performances est recommandée :
<code class="language-sql">SELECT * FROM [yourtable] WHERE [yourPk] IN (SELECT TOP 10 PERCENT [yourPk] FROM [yourtable] ORDER BY NEWID())</code>
Cette approche sélectionne d'abord un échantillon aléatoire de valeurs de clé primaire à l'aide d'une sous-requête. La requête principale récupère alors uniquement les lignes correspondant à ces clés. Cela réduit considérablement les données analysées, améliorant ainsi les performances.
Ces techniques offrent un moyen simple et efficace d'effectuer une sélection aléatoire de lignes dans SQL Server, résolvant ainsi un problème auparavant complexe.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!