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

Cli*_*ote 119 mysql sql

这样的事情是可能的:

SELECT DISTINCT COUNT(productId) WHERE keyword='$keyword'
Run Code Online (Sandbox Code Playgroud)

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

Dav*_*vid 264

使用

SELECT COUNT(DISTINCT productId) from  table_name WHERE keyword='$keyword'
Run Code Online (Sandbox Code Playgroud)


Gra*_*tzy 55

我会做这样的事情:

Select count(*), productid
from products
where keyword = '$keyword'
group by productid
Run Code Online (Sandbox Code Playgroud)

这会给你一个像这样的清单

count(*)    productid  
----------------------
 5           12345   
 3           93884   
 9           93493    
Run Code Online (Sandbox Code Playgroud)

这允许您查看每个不同的productid ID与关键字相关联的数量.


tek*_*ues 31

你很亲密:-)

select count(distinct productId) from table_name where keyword='$keyword'
Run Code Online (Sandbox Code Playgroud)


小智 18

仅供参考,这可能更快,

SELECT count(1) FROM (SELECT distinct productId WHERE keyword = '$keyword') temp
Run Code Online (Sandbox Code Playgroud)

比这个,

SELECT COUNT(DISTINCT productId) WHERE keyword='$keyword'
Run Code Online (Sandbox Code Playgroud)


Geo*_*DRA 6

所有这些工作到底是什么花药

这太简单了

如果你想在这里找到每个关键字中productId的列表,那就是代码

SELECT count(productId),  keyword  FROM `Table_name` GROUP BY keyword; 
Run Code Online (Sandbox Code Playgroud)


Rha*_*era 5

选择不同的产品并展示每个产品的数量

对于关于此类问题的另一个答案,这是我根据不同的产品名称获取产品数量的另一个答案,如下面的示例:

表值

select * FROM Product
Run Code Online (Sandbox Code Playgroud)

计数产品名称

SELECT DISTINCT(Product_Name),
(SELECT COUNT(Product_Name) 
from Product  WHERE Product_Name = Prod.Product_Name)  
as `Product_Count`
from Product as Prod
Run Code Online (Sandbox Code Playgroud)

记录数:4;执行时间:2ms