SQL Selecting Distinct Count количество элементов, где выполняются 2 условия - PullRequest
2 голосов
/ 06 декабря 2010

Я изо всех сил пытаюсь получить DISTINCT COUNT, работающий с SQL. DISTINCT SELECT

Не уверен, должен ли я вообще использовать отличные здесь, но я правильно понял, используя подзапрос, хотя это очень трудоемкая обработка.

Этот запрос выполняет то, что я в конечном итоге хочу получить с мудрыми результатами (без учета веса)

SELECT DISTINCT 
product_brandNAME, 
product_classNAME, 
  (SELECT COUNT(productID) FROM products 
   WHERE products.product_classID = product_class.product_classID 
   AND products.product_brandID = product_brand.product_brandID) as COUNT
FROM products
JOIN product_brand
JOIN product_class
ON  products.product_brandID = product_brand.product_brandID
AND products.product_classID = product_class.product_classID
GROUP BY productID
ORDER BY product_brandNAME

Это близко, и гораздо эффективнее, но я не могу заставить работать счетчик,он только подсчитывает (очевидно) отчетливый счет, который равен 1.

SELECT DISTINCT product_brandNAME, product_classNAME, COUNT(*) as COUNT
FROM products
JOIN product_brand
JOIN product_class
ON  products.product_brandID = product_brand.product_brandID
AND products.product_classID = product_class.product_classID
GROUP BY productID
ORDER BY product_brandNAME

Любые предложения, я уверен, что они малы, и часами исследовали сеть для ответа безрезультатно для 2 условий:матч.

Спасибо,

Ответы [ 2 ]

1 голос
/ 06 декабря 2010

Вы пробовали следующий запрос

Редактировать

SELECT  product_brandNAME
        , product_classNAME
        , COUNT(*)
FROM    products
        JOIN product_brand ON products.product_brandID = product_brand.product_brandID
        JOIN product_class ON products.product_classID = product_class.product_classID              
GROUP BY 
        product_brandNAME
        , product_classNAME
0 голосов
/ 06 декабря 2010

При использовании GROUP BY вам не нужно использовать предложение DISTINCT. Попробуйте следующее:

SELECT productID,
       product_brandNAME, 
       product_classNAME, 
       COUNT(*) as COUNT 
  FROM products JOIN product_brand ON  products.product_brandID = product_brand.product_brandID
                JOIN product_class ON products.product_classID = product_class.product_classID       
GROUP BY productID,
         product_brandNAME, 
         product_classNAME 
ORDER BY product_brandNAME 
...