Imaginez que j'ai table comme ceci:Comment compter des enregistrements uniques et obtenir le nombre de ces uniques dans une table en utilisant SQL?
id: Produit: shop_id
1: Basket-ball: 41
2: Football: 41
3: Rocket: 45
4: Voiture: 86
5: Plan: 86
Maintenant, ceci est un exemple de grand centre commercial Internet, où il y a des magasins qui vendent à un client, ainsi le client peut choisir plus de produits de chaque magasin et l'acheter dans un seul panier.
Cependant, je ne suis pas sûr qu'il y ait une syntaxe SQL qui me permette d'obtenir simplement des shop_ids uniques et le nombre total de produits de ces boutiques dans le panier client. Alors j'obtenir quelque chose comme:
Boutique 41 a 2 produits
Boutique 45 un produit
Boutique 86 deux produits
Je peux faire des requêtes SQL pour écoper par table pour faire une sorte de ['shop_id'] ['number_of_products'] variable de tableau qui stockerait tous les shop_ids de produits, puis les "uniques" - et compte combien de fois j'ai dû couper un shop_id de plus pour en avoir quelques-uns mais cela semble juste beaucoup de scripts inutiles.
Si vous avez une bonne idée, s'il vous plaît, faites le moi savoir.
(1) après comptage signifie quel paramètre après SELECT doit être compté? – Skuta
Non, le (1) n'est pas une référence à une colonne, c'est juste la valeur entière 1. Il est plus fréquent d'utiliser COUNT (*) ou COUNT (nom de la colonne). Glomek utilise COUNT (1) comme valeur entière constante, car certaines personnes pensent que cela est plus rapide que de référencer une colonne. –
L'optimiseur * doit * veiller à ce que le compte (*) prenne autant de temps que le compte (1). Je suppose que certains optimiseurs ne le font pas. – yfeldblum