Comment compter les enregistrements uniques et obtenir le nombre de ces uniques dans la table en utilisant SQL?

StackOverflow https://stackoverflow.com/questions/237302

Question

Imaginez un tableau comme celui-ci:

id: Produit: shop_id

1: Basketball: 41

2: Football: 41

3: Fusée: 45

4: Voiture: 86

5: avion: 86

C’est maintenant un exemple de grand centre commercial Internet, où certains magasins vendent à un client, ce qui permet au client de choisir plus de produits dans chaque magasin et de l’acheter dans le même panier.

Cependant, je ne suis pas sûr s'il existe une syntaxe SQL qui me permette d'obtenir simplement des identifiants uniques et un nombre total de produits de ces boutiques dans le panier de clients. Donc, je voudrais quelque chose comme:

Shop 41 a 2 produits

Magasinez 45 un produit

Magasinez 86 deux produits

Je peux faire en sorte que les requêtes SQL parcourent les tables pour créer une sorte de variable de tableau ['shop_id'] ['number_of_products'] qui stocke les 'shop_ids de tous les produits, puis les «unique». - et compte combien de fois j'ai dû supprimer un autre shop_id pour en avoir quelques-uns, mais cela me semble beaucoup de scripts inutiles.

Si vous avez une bonne idée, merci de me le faire savoir.

Était-ce utile?

La solution

C’est exactement le genre de chose à laquelle les fonctions d’agrégation sont destinées. Vous créez une ligne de sortie pour chaque groupe de lignes de la table. Regroupez-les par shop_id et comptez le nombre de lignes de chaque groupe.

select shop_id, count(1) from TABLE_NAME
  group by shop_id
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top