[mysql] MySQL 쿼리에서 DISTINCT와 COUNT를 함께 사용

다음과 같은 것이 가능합니까?

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; 


답변

고유 한 제품 선택 및 제품 당 표시 수

이 유형의 질문에 대한 또 다른 대답은 아래 샘플과 같이 제품 이름에 대한 제품 기반 수를 얻는 또 다른 대답입니다.

테이블 값

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; 실행 시간 : 2ms


답변

그룹 바이가 더 낫지 않나요? 다음과 같은 것 :

SELECT COUNT(*) FROM t1 GROUP BY keywork;