¿Cómo contar registros únicos y obtener el número de estos objetos únicos en la tabla usando SQL?

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

Pregunta

Imagina que tengo una mesa como esta:

id:Product:shop_id

1: Baloncesto: 41

2: Fútbol: 41

3: Cohete: 45

4: Coche: 86

5: Plano: 86

Ahora, este es un ejemplo de un gran centro comercial de Internet, donde hay tiendas que venden a un cliente, por lo que el cliente puede elegir más productos de cada tienda y comprarlos en una sola cesta.

Sin embargo, no estoy seguro de si hay alguna sintaxis SQL que me permita obtener simplemente shop_ids únicos y el número total de productos de esas tiendas en la cesta de clientes. Así que obtendría algo como:

La tienda 41 tiene 2 productos

Tienda 45 un producto

Tienda 86 dos productos

Puedo hacer consultas de SQL para pasar por la tabla y hacer algún tipo de variable de matriz ['shop_id'] ['number_of_products'] que almacenaría todos los productos 'shop_ids, y luego' quot; exclusivos de ellos " - arriba y cuente cuántas veces tuve que cortar un shop_id más para que quedara algo, pero eso parece un montón de scripts inútiles.

Si tienes una buena idea, por favor, házmelo saber.

¿Fue útil?

Solución

Este es exactamente el tipo de cosas para las que están las funciones agregadas. Usted crea una fila de salida para cada grupo de filas en la tabla. Agrupe por shop_id y cuente cuántas filas hay en cada grupo.

select shop_id, count(1) from TABLE_NAME
  group by shop_id
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top