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



что-то вроде этого можно:



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


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

496   7  

7 ответов:

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

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 связано с ключевым словом.

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

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; Время выполнения: 2МС

Не лучше ли с группой by? Что-то вроде:

SELECT COUNT(*) FROM t1 GROUP BY keywork;

Comments

    Ничего не найдено.