使用Count和Distinct与Where

时间:2018-03-21 15:39:25

标签: mysql sql count

我试图显示不同品牌的下拉列表,而且我希望显示与WHERE语句匹配的项目数量的摘要。环顾四周,我只能找到问题的部分解决方案,而不是需要嵌套的SELECT WHERE部分......

到目前为止的进展......

SELECT brand,COUNT(DISTINCT linked_id WHERE done=0) as count FROM products GROUP BY brand ORDER BY brand;

这显然不会运行,但确实为我想要实现的目标提供了一些解决方案。

以前有人做过这样的事吗?

2 个答案:

答案 0 :(得分:2)

你可能想要这样的东西吗?

SELECT 
    brand, 
    COUNT(DISTINCT CASE WHEN done = 0 THEN linked_id ELSE NULL END) AS count 
FROM 
    products 
GROUP BY 
    brand 
ORDER BY 
    brand;

编辑删除[count]并将其重新计算。

答案 1 :(得分:2)

当过滤器为真时,您应该计算清楚。

SELECT
    brand,
    COUNT(DISTINCT(CASE WHEN done = 0 THEN linked_id END)) count
FROM
    products
GROUP BY
    brand
ORDER BY
    brand