Échantillonner les données d'une table en SQL
Fermé
Dfordanger
Messages postés
7
Date d'inscription
mardi 1 mars 2011
Statut
Membre
Dernière intervention
30 juin 2014
-
28 sept. 2011 à 10:21
blux Messages postés 25976 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 17 avril 2024 - 28 sept. 2011 à 13:13
blux Messages postés 25976 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 17 avril 2024 - 28 sept. 2011 à 13:13
A voir également:
- Échantillonner les données d'une table en SQL
- Table ascii - Guide
- Table des matières word - Guide
- Effacer les données de navigation - Guide
- Excel reporter des données sur une autre feuille avec conditions - Forum Excel
- Dupliquer une table sql ✓ - Forum Programmation
2 réponses
blux
Messages postés
25976
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
17 avril 2024
3 287
28 sept. 2011 à 13:13
28 sept. 2011 à 13:13
Salut,
ton problème relève de la théorie des probabilités, bien plus que de l'algèbre relationnelle, à la base des base de données.
En fonction du nombre de produit différents et de la quantité de ces produits, tu auras une réponse différente.
Je m'explique :
dans ton tiroir, tu as 18 chaussettes, 9 noires et 9 bleues.
Si tu veux être sûr d'avoir au moins une paire identique et que tu es dans le noir, il faut prendre 10 chaussettes, même dans le cas le plus défavorable, tu en auras forcément au moins une qui sera complète.
Si tu as 3 couleurs de chaussettes, il te faut additionner le nombre total de chaussettes de 2 couleurs et ajouter 1. Pour 4 couleurs, additionner le total de 3 couleurs et ajouter 1.
Ca, c'est la théorie, dans la pratique SQL, ça sera plus dur :
- compter le nombre de caractéristiques uniques (SELECT UNIQUE ou DISTINCT...)
- compter le nombre d'articles par caractéristiques (SELECT COUNT... GROUP BY...)
- additionner les (n-1) résultats renvoyés précédemment : pas facile du tout, voire impossible en SQL
- lire un nombre d'enregistrement égal au résultat précédent +1 (SELECT TOP n en fonction du SQL utilisé).
Maintenant, selon le SGBD que tu utilises, ça peut se traiter en programmation.
ton problème relève de la théorie des probabilités, bien plus que de l'algèbre relationnelle, à la base des base de données.
En fonction du nombre de produit différents et de la quantité de ces produits, tu auras une réponse différente.
Je m'explique :
dans ton tiroir, tu as 18 chaussettes, 9 noires et 9 bleues.
Si tu veux être sûr d'avoir au moins une paire identique et que tu es dans le noir, il faut prendre 10 chaussettes, même dans le cas le plus défavorable, tu en auras forcément au moins une qui sera complète.
Si tu as 3 couleurs de chaussettes, il te faut additionner le nombre total de chaussettes de 2 couleurs et ajouter 1. Pour 4 couleurs, additionner le total de 3 couleurs et ajouter 1.
Ca, c'est la théorie, dans la pratique SQL, ça sera plus dur :
- compter le nombre de caractéristiques uniques (SELECT UNIQUE ou DISTINCT...)
- compter le nombre d'articles par caractéristiques (SELECT COUNT... GROUP BY...)
- additionner les (n-1) résultats renvoyés précédemment : pas facile du tout, voire impossible en SQL
- lire un nombre d'enregistrement égal au résultat précédent +1 (SELECT TOP n en fonction du SQL utilisé).
Maintenant, selon le SGBD que tu utilises, ça peut se traiter en programmation.
Jean_Jacques
Messages postés
1040
Date d'inscription
mercredi 30 avril 2008
Statut
Membre
Dernière intervention
1 août 2014
112
28 sept. 2011 à 11:53
28 sept. 2011 à 11:53
Bonjour Dfordanger, - 28 sept. 2011 à 11:50
Cette syntaxe de regroupement devrait vous dépanner.
- Chaque libellé distinct contenu dans "Champ_1" est listé une unique fois.
- Le Count est facultatif. Il permet de dénombrer le nombre d'occurrence pour chaque libellé.
SELECT <Table_1.Champ_1>, Count(<Table_1.Champ_1>) AS CompteDeChamp_1
FROM <Table_1>
GROUP BY <Table_1.Champ_1>
ORDER BY <Table_1.Champ_1>;
Cordialement
Cette syntaxe de regroupement devrait vous dépanner.
- Chaque libellé distinct contenu dans "Champ_1" est listé une unique fois.
- Le Count est facultatif. Il permet de dénombrer le nombre d'occurrence pour chaque libellé.
SELECT <Table_1.Champ_1>, Count(<Table_1.Champ_1>) AS CompteDeChamp_1
FROM <Table_1>
GROUP BY <Table_1.Champ_1>
ORDER BY <Table_1.Champ_1>;
Cordialement