首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >始终显示count (1)的结果为0的行

始终显示count (1)的结果为0的行
EN

Stack Overflow用户
提问于 2018-10-27 20:47:29
回答 1查看 49关注 0票数 0

我最近不得不遇到sql查询,尽管这不是我的专长。下面是我使用的查询:我的问题是,如果行的count (1) =0,它就不会显示。第一个查询是第二个查询的演变,如果值为0,它显然会显示这条线。由于代理代码的数量很大,为了使一切变得更快,而不是对n个代码代理执行n次查询,这种演变是必要的。

代码语言:javascript
复制
SELECT
    rollout.id AS 'RowNumber',
    rollout.AgencyCode,
    COUNT(1) AS 'NumberOfTitleAgnecy',
    SUM(COUNT(1)) OVER() AS 'SumOfTitle'
FROM STAGINGTITLE AS ST
    INNER JOIN (
        VALUES
            (1,'000001'),
            (2,'000002'),
            (3,'000003')
    ) AS rollout (id, CodAgency) 
    ON ST.AgencyCode = rollout.CodAgency
WHERE ST.ExternalId IS NULL
    AND ST.TitleState = 'BackWard'
GROUP BY rollout.id, rollout.CodAgency
ORDER BY rollout.id

SELECT COUNT(1)
FROM STAGINGTITLE AS ST
WHERE ST.AgencyCode = '000001'
    AND ST.ExternalId IS NULL
    AND ST.TitleState = 'BackWard'

对于如何修改第一个查询以使行显示count (1) = 0,您有什么建议吗?

编辑:预期输出

代码语言:javascript
复制
RowNumber | AgencyCode | NumberOfTitleAgnecy | SumOfTitle |
-----------------------------------------------------------
 1        | 000001     |  100                | 300        |
 2        | 000002     |  0                  | 300        |
 3        | 000003     |  150                | 300        |
 4        | 000004     |  50                 | 300        |
EN

回答 1

Stack Overflow用户

发布于 2018-10-27 20:52:43

使用LEFT JOIN

代码语言:javascript
复制
SELECT rollout.id AS RowNumber,
       rollout.CodAgency,
       COUNT(st.AgencyCode) AS NumberOfTitleAgnecy,
       SUM(COUNT(st.AgencyCode)) OVER () AS SumOfTitle
FROM (VALUES (1, '000001'), (2, '000002'), (3, '000003')
     ) rollout(id, CodAgency) LEFT JOIN
     STAGINGTITLE ST
     ON ST.AgencyCode = rollout.CodAgency AND
        ST.ExternalId IS NULL AND ST.TitleState = 'BackWard'
GROUP BY rollout.id, rollout.CodAgency
ORDER BY rollout.id;

备注:

  • WHERE子句已移动到ON子句中,因此该别名不会转换为INNER JOIN.
  • The COUNT()现在正在计算匹配项的数量,因此它可以返回ST的别名是固定的。
  • CodAgency的引用已修复。
  • 将从列别名中删除单引号。仅对字符串和日期常量使用单引号。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53022031

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档