【问题标题】:How can I add the same column under additional condition?如何在附加条件下添加同一列?
【发布时间】:2017-02-13 11:00:14
【问题描述】:

我有两张桌子,分别是经理和客户。 所以'client'表有以下字段:

1. id_client
2. email
3. name
4. id_manager
5. made_a_deal  (bool field)

“经理”表有以下字段:

1. id_manager
2. name

这两个表是通过 id_manager key 连接起来的。

我想要一张表,其中显示以下字段:

1. id_manager
2. managers.name
3. COUNT(By field id_client)
And I couldn't make the fourth filed:
4. COUNT(By field id_client, which have bought something ('client.made_a_deal' is true))

我的代码是:

USE database_name;
SELECT
    managers.id_manager,
    managers.name,
    COUNT(client.id_client) AS `all`
FROM managers
LEFT OUTER JOIN
    client
    ON
    managers.id_manager = client.id_manager
GROUP BY managers.name
;

我应该如何修改我的代码以访问所需的表?

【问题讨论】:

    标签: mysql database group-by left-join


    【解决方案1】:

    在 MySQL 中,布尔列实际上是具有零含义的整数 false

    所以在你的 SELECT 子句中试试这一行。

     SUM(IF client.made_a_deal  <> 0, 1, 0)) AS dealmakers, 
    

    如果您确定made_a_deal 列中的每个值都是零或一,那么这个更简单的子句就可以了。

     SUM(client.made_a_deal) AS dealmakers, 
    

    【讨论】:

    • 酷!这是非常简单和天才的解决方案!谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-10-18
    • 2021-02-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-07
    相关资源
    最近更新 更多