Como contar registros exclusivos e obter o número desses exclusivos na tabela usando o SQL?
Pergunta
Imagine que eu tenho mesa assim:
ID: Produto: shop_id
1: Basquete: 41
2: futebol: 41
3: Rocket: 45
4: carro: 86
5: Plano: 86
Agora, este é um exemplo de grande shopping internet, onde há lojas que vendem para um cliente, para que o cliente possa escolher mais produtos de cada loja e comprá -lo em uma cesta.
No entanto, não tenho certeza se existe alguma sintaxe do SQL que me permita simplesmente obter shop_ids exclusivos e número total de produtos dessas lojas na cesta de clientes. Então eu teria algo como:
A loja 41 tem 2 produtos
Compra 45 um produto
Compra 86 dois produtos
Eu posso fazer consultas SQL para passar pela tabela para fazer algum tipo de variável de matriz ['shop_id'] ['number_of_products'] que armazenaria todos os produtos 'shop_ids, depois "exclusivos" - para cima e contem a quantas vezes eu tinha que cortar Mais um Shop_Id para ter alguns restantes, mas isso parece ter muitos scripts inúteis.
Se você tem uma ideia agradável e interessante, por favor, me avise.
Solução
Esse é exatamente o tipo de coisa para a qual as funções agregadas são. Você faz uma linha de saída para cada grupo de linhas na tabela. Agrupe -os por shop_id e conte quantas linhas estão em cada grupo.
select shop_id, count(1) from TABLE_NAME
group by shop_id