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

ckx4rj1h  于 2022-12-17  发布在  Mysql
关注(0)|答案(7)|浏览(220)

像这样的事情可能吗:

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

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

txu3uszq

txu3uszq1#

使用

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

fv2wmkja2#

我会这样做:

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

它会给予你一个列表

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

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

3htmauhk

3htmauhk3#

你很接近:-)

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

c3frrgcw4#

告诉你,这样可能更快,

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

比这,

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

k3fezbri5#

这一切到底是怎么回事

太简单了
如果您需要每个关键字中包含多少productId的列表,请在此处输入代码

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

kgqe7b3p6#

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

对于这类问题的另一个答案,这是我使用distinct根据产品名称获取产品计数的方法。下面是一个示例:

产品列表(SQLFiddle):

select * FROM Product

使用非重复的产品名称计数(SQLFiddle):

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

不带Distinct的优化版本

SELECT Product_Name, COUNT(Product_Name) AS `Product_Count`
FROM Product
GROUP BY Product_Name

lx0bsm1f

lx0bsm1f7#

有一个团体不是更好吗?就像这样:

SELECT COUNT(*) FROM t1 GROUP BY keywork;

相关问题