我想知道在 sql 中拥有一个由于 WHERE 子句而不会显示的静态列的最佳方法是什么。在下面的代码中我有一个设计师。我希望所有设计师都能出现,即使他们不满足 WHERE 条件,但具有与 WHERE 条件相关的值。
SELECT first_assigned_to AS Designer,
Count(DISTINCT quote_email) AS totalLeads
FROM quotes_new_assigned
WHERE date_first_assigned_to >= YEAR(CURDATE())
GROUP BY designer
This is what the SELECT will give us at the end of the year
adam 38
bob 1711
brenda 823
chris 7
dave 426
diane 52
This is what I would like it to give (values dont matter, just notice how the ones that do not have any quotes assigned to them still show up)
adam 0
bob 0
brenda 3
chris 1
dave 0
diane 4
最佳答案
您可以在 COUNT 内使用 CASE WHEN 来做到这一点。
SELECT first_assigned_to AS Designer,
Count(DISTINCT CASE WHEN date_first_assigned_to >= YEAR(CURDATE()) THEN quote_email END) AS totalLeads
FROM quotes_new_assigned
GROUP BY first_assigned_to;
关于mysql - SQL 显示从不更改但根据需要更新其他列的列的静态值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47998589/