在 MySQL 查询中同时使用 DISTINCT 和 COUNT

这样的事情是否可能发生:

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

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

224303 次浏览

你们很亲密: -)

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

使用

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

有一群人在旁边不是更好吗? 比如:

SELECT COUNT(*) FROM t1 GROUP BY keywork;

我会这样做:

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

会给你一个列表,比如

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

这允许您查看每个不同的 productid ID 中有多少与关键字相关联。

顺便说一句,这个可能更快,

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

比这个,

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

这到底是什么工作,花药

太简单了

如果你想要一个每个关键字中有多少 productId 的列表,这里是代码

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

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

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

表值

select * FROM Product

已计算产品名称

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毫秒