Usando DISTINCT y COUNT juntos en una consulta MySQL


Es algo como esto posible:

SELECT DISTINCT COUNT(productId) WHERE keyword='$keyword'

Lo que quiero es obtener el número de ID de producto únicos que están asociados con una palabra clave. El mismo producto puede estar asociado dos veces con una palabra clave, o más, pero me gustaría que solo se contara 1 vez por ID de producto

 108
Author: Wolf, 2009-06-16

7 answers

Use

SELECT COUNT(DISTINCT productId) from  table_name WHERE keyword='$keyword'
 244
Author: David,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-09-08 10:19:36

Yo haría algo como esto:

Select count(*), productid
from products
where keyword = '$keyword'
group by productid

Eso te dará una lista como

count(*)    productid  
----------------------
 5           12345   
 3           93884   
 9           93493    

Esto le permite ver cuántos de cada ID de productid distintos están asociados con la palabra clave.

 47
Author: Gratzy,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-11-07 09:11:25

Estabas cerca: -)

select count(distinct productId) from table_name where keyword='$keyword'
 32
Author: tekBlues,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-09-08 10:20:33

Para su información, esto es probablemente más rápido,

SELECT count(1) FROM (SELECT distinct productId WHERE keyword = '$keyword') temp

Que esto,

SELECT COUNT(DISTINCT productId) WHERE keyword='$keyword'
 15
Author: Alistair Hart,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-09-18 12:33:34

¿Qué demonios de todo este trabajo anteras

Es demasiado simple

Si quieres una lista de la cantidad de ProductID en cada palabra clave aquí es el código

SELECT count(productId),  keyword  FROM `Table_name` GROUP BY keyword; 
 6
Author: George SEDRA,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-07-26 17:51:14

SELECCIÓN DE PRODUCTO DISTINTO Y RECUENTO DE VISUALIZACIÓN POR PRODUCTO

Para otra respuesta sobre este tipo de pregunta esta es mi otra respuesta para obtener el recuento de la base del producto en el nombre del producto distinto como esta muestra a continuación:

Valor de la tabla

select * FROM Product

Nombre del producto contado

SELECT DISTINCT(Product_Name),
(SELECT COUNT(Product_Name) 
from Product  WHERE Product_Name = Prod.Product_Name)  
as `Product_Count`
from Product as Prod

Número de registros: 4; Tiempo de ejecución: 2ms

 0
Author: Rhalp Darren Cabrera,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-03-24 13:34:24

¿No es mejor con un grupo de? Algo como:

SELECT COUNT(*) FROM t1 GROUP BY keywork;
 -5
Author: Macarse,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-06-16 15:48:46