【问题标题】:Count number of rows that were returned in a join计算连接中返回的行数
【发布时间】:2016-11-23 19:52:38
【问题描述】:

此查询仅成功返回可能包含多行的连接的第一行。

WITH RevisionProducts AS (
    SELECT
        qr.LeadID,
        p.Code,
        ROW_NUMBER() OVER(PARTITION BY qr.LeadID ORDER BY qr.LeadID DESC) rownumber
    FROM    
        QuoteRevisions qr
        JOIN ...
)
SELECT 
    l.LeadID,
    ...
    co.Name,
    rp1.Code,
    0 AS CodeCount
FROM 
    Leads l
    JOIN Companies co on co.CompanyID = l.CompanyID
    JOIN RevisionProducts rp1 ON rp1.LeadID = l.ID AND rp1.rownumber = 1

我现在要做的是替换...

0 AS CodeCount

...如果我们允许所有这些,将在连接中返回的实际行数。不知道该怎么做。

我不确定我是否需要 CTE,但我认为它可能很方便,因为我很可能需要再次引用相同的查询来计算计数?

编辑:

好吧,看来我需要更清楚了。所以 CTE 中的查询......让我们用 WHERE 子句运行它:

    SELECT
        qr.LeadID,
        p.Code,
        ROW_NUMBER() OVER(PARTITION BY qr.LeadID ORDER BY qr.LeadID DESC) rownumber
    FROM    
        QuoteRevisions qr
        JOIN ...
    WHERE
        qr.LeadID = 151

假设查询返回 5 行。因此,在第一个查询中,如果我们没有将联接仅限制在第一行,那么当 Lead.LeadID 达到 151 时,联接将返回 5 行。所以在最终数据集中,将有 5 行rp1.Code 列除外。

我已经将行数限制为 1,这正是我想要的。但是现在,我想知道会返回多少行。

我希望这更有意义。

【问题讨论】:

  • 我在这里完全糊涂了。 “如果我们全部允许,将在连接中返回”是什么意思?我一遍又一遍地阅读它,它对我来说根本没有任何意义。您是否尝试获取每个组的行数?你看过使用 COUNT 吗?在我们在这里提供帮助之前,您必须提供更多详细信息。这将是一个很好的起点。 spaghettidba.com/2015/04/24/…
  • 良好的反馈。查看我对 OP 的编辑

标签: sql sql-server join count common-table-expression


【解决方案1】:

这样的事情怎么样?

WITH RevisionProducts AS (
    SELECT
        qr.LeadID,
        p.Code,
        ROW_NUMBER() OVER(PARTITION BY qr.LeadID ORDER BY qr.LeadID DESC) rownumber
        COUNT(*) OVER(PARTITION BY qr.LeadID ) rowcount
    FROM    
        QuoteRevisions qr
        JOIN ...
)
SELECT 
    l.ID,
    ...
    co.Name,
    rp1.Code,
    rp1.rowcount AS CodeCount
FROM 
    Leads l
    JOIN Companies co on co.CompanyID = l.CompanyID
    JOIN RevisionProducts rp1 ON rp1.LeadID = l.ID AND rp1.rownumber = 1

【讨论】:

    猜你喜欢
    • 2020-01-18
    • 2013-12-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-15
    • 1970-01-01
    • 2021-06-04
    • 1970-01-01
    相关资源
    最近更新 更多