【问题标题】:Creating a join where I pull a count from another table创建一个连接,我从另一个表中提取计数
【发布时间】:2020-02-26 15:18:53
【问题描述】:

我有一张包含房地产经纪人信息的表格,想从 rets_agents 中提取 firstnamefullnameemail

然后我想从另一个名为 rets_property_res_mstr 的表中获取他们所有销售额的计数。

我创建了一个无法运行的查询,所以我需要一些帮助。

SELECT r.firstname, r.fullname, r.email
from rets_agents r
LEFT JOIN rets_property_res_mstr
     ON r.email = rets_property_res_mstr.ListAgentEmail
LIMIT 10;

    

我不知道如何计算。

【问题讨论】:

  • 做一个 GROUP BY,并使用 COUNT()。

标签: mysql sql join group-by


【解决方案1】:

你似乎在寻找聚合:

SELECT a.firstname, a.fullname, a.email, COUNT(p.ListAgentEmail) cnt
FROM rets_agents a
LEFT JOIN rets_property_res_mstr p ON r.email = p.ListAgentEmail
GROUP BY a.firstname, a.fullname, a.email
ORDER BY ?
LIMIT 10;

请注意,要让LIMIT 子句真正 有意义,您需要一个ORDER BY 子句以便获得确定性结果(否则,将显示哪些记录未定义)-我在您的查询中添加了一个问号,您应该将其替换为相关列。

【讨论】:

    【解决方案2】:

    我会考虑为此使用 CTE:

    WITH sales as (
    SELECT ListAgentEmail, count(*) count_of_sales
    FROM rets_property_res_mstr
    GROUP BY ListAgentEmail
    )
    
    SELECT r.firstname, r.fullname, r.email, count_of_sales
    from rets_agents r
    LEFT JOIN sales
         ON r.email = sales.ListAgentEmail
    LIMIT 10;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-07-30
      • 2012-01-12
      • 2010-10-24
      • 2014-12-26
      • 1970-01-01
      • 2017-06-09
      • 2020-09-28
      • 2016-08-31
      相关资源
      最近更新 更多