首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用连接的SQL查询计数

使用连接的SQL查询计数
EN

Stack Overflow用户
提问于 2020-04-27 16:23:29
回答 2查看 52关注 0票数 1

我有以下SQL查询,它运行得很好,但现在我想根据以下场景计算计数:

代码语言:javascript
运行
复制
      SELECT d.vseverity, v.vulnstatus, v.vtitleid, d.vtitle 
    FROM vulnsummary v 
    JOIN project p ON v.projid = p.projid 
               AND v.stagename = p.currentstage 
    JOIN datasets d ON v.vtitleid = d.datasetid

当前输出为:

现在我想这样显示计数:

高(开放)-2

高(闭合)-0

中(开放)-1

Medium (闭合)-0

低(开放)-3

低(闭合)-1

请帮我解决这个问题,谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-04-27 16:31:58

您需要对不同的严重性和状态值集合执行CROSS JOIN操作,然后将其LEFT JOIN到您的表中,以便计算每个严重性/状态组合的值。在没有样本数据的情况下,很难确定,但这样的东西应该可以工作:

代码语言:javascript
运行
复制
SELECT sv.vseverity, st.vulnstatus, COUNT(v.vseverity) AS count
FROM (
    SELECT DISTINCT vseverity
    FROM datasets
) sv
CROSS JOIN (
    SELECT DISTINCT vulnstatus
    FROM vulnsummary
) st
LEFT JOIN (
    SELECT d.vseverity, v.vulnstatus 
    FROM vulnsummary v 
    JOIN project p ON v.projid = p.projid 
                  AND v.stagename = p.currentstage 
    JOIN datasets d ON v.vtitleid = d.datasetid
) v ON v.vseverity = sv.vseverity AND v.vulnstatus = st.vulnstatus
GROUP BY sv.vseverity, st.vulnstatus
票数 2
EN

Stack Overflow用户

发布于 2020-04-27 16:54:37

我没有您的完整数据集,但是,对主volnstatus表的右外部连接将启用( volnstatus表显示所有选项,即‘'Open','Closed')。一个粗略的草稿示例,其中只填充了volnstatus表:

代码语言:javascript
运行
复制
SELECT COUNT(s.vulnstatus) CountOf, t.vtype
FROM dbo.vusummary s
    RIGHT OUTER JOIN
        vusummarytype t
            ON s.vulnstatus = t.vtype
GROUP BY t.vtype
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61454543

复制
相关文章

相似问题

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