簡體   English   中英

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

[英]Using DISTINCT and COUNT together in a MySQL Query

這樣的事情可能嗎:

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

我想要的是獲取與關鍵字關聯的唯一產品 ID 的數量。 同一產品可能與一個關鍵字相關聯兩次或更多次,但我希望每個產品 ID 只計算 1 次

采用

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

我會做這樣的事情:

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

那會給你一個清單

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

這使您可以查看每個不同的 productid ID 中有多少與關鍵字相關聯。

你很接近:-)

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

僅供參考,這可能更快,

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; 

選擇不同的產品和每個產品的展示數量

對於此類問題的另一個答案,這是我使用 distinct 根據產品名稱獲取產品數量的方法。 這是一個示例:

產品清單SQLFiddle ):

 select * FROM Product

使用 Distinct ( 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

分組不是更好嗎? 就像是:

SELECT COUNT(*) FROM t1 GROUP BY keywork;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM