在MySQL查询中一起使用DISTINCT和COUNT

时间:2009-06-16 15:46:07

标签: mysql sql

这样的事情是可能的:

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

我想要的是获取与关键字相关联的唯一产品ID的数量。同一产品可能会与关键字相关联两次或更多,但我希望每个产品ID只计算一次

7 个答案:

答案 0 :(得分:254)

使用

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

答案 1 :(得分:52)

我会做这样的事情:

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

将为您提供类似

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

这使您可以查看每个不同的产品ID中有多少与关键字相关联。

答案 2 :(得分:31)

你很亲密: - )

select count(distinct productId) from table_name where keyword='$keyword'

答案 3 :(得分:16)

仅供参考,这可能更快,

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

比这个,

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

答案 4 :(得分:6)

所有这些工作花了什么花药

太简单了

如果你想要列出每个关键字中productId的数量,那就是代码

SELECT count(productId),  keyword  FROM `Table_name` GROUP BY keyword; 

答案 5 :(得分:3)

选择不同产品和显示每个产品的计数

关于这类问题的另一个答案这是我的另一个答案,就是根据产品名称来计算产品名称,如下例所示:

Table Value

select * FROM Product

Counted Product Name

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

  

记录数:4;执行时间:2毫秒

答案 6 :(得分:-5)

一群人不是更好吗? 类似的东西:

SELECT COUNT(*) FROM t1 GROUP BY keywork;