Использование DISTINCT и COUNT вместе в запросе MySQL

Возможно ли что-то подобное:

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

Я хочу получить количество уникальных идентификаторов продукта, связанных с ключевым словом. Один и тот же продукт может быть связан дважды с ключевым словом или более, но я бы хотел, чтобы только один раз учитывался для каждого идентификатора продукта.

Ответ 1

использовать

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

Ответ 2

Я бы сделал что-то вроде этого:

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

который даст вам список, например

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

Это позволяет вам видеть, сколько из каждого отдельного идентификатора productid связано с ключевым словом.

Ответ 3

Вы были близки: -)

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

Ответ 4

FYI, это, вероятно, быстрее,

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

чем это,

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

Ответ 5

Что, черт возьми, все это работает?

слишком просто

если вам нужен список того, сколько productId в каждом ключевом слове здесь это код

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

Ответ 6

Разве это не лучше с группой? Что-то вроде:

SELECT COUNT(*) FROM t1 GROUP BY keywork;