【发布时间】:2020-09-28 15:04:39
【问题描述】:
我有以下工作查询,我从中创建了一个堆叠列图。
我现在希望能够筛选出总 [plugin ID] 计数最高的前 10 个 [Prod_Model]。
我尝试为每个产品创建一个额外的列总和 [插件 ID] (vulCnt),而不考虑 [风险]。
我在SELECT 中使用INNER JOIN 或SELECT 的努力失败了。
我的工作查询:
select t.Prod_Model,
count(t.[Plugin ID]) as vulCnt,
(case t.Risk
when 'Critical' then 1
when 'High' then 2
when 'Medium' then 3
when 'Low' then 4
Else 5
End) As Rsk_Levl,
t.Risk
from ************ t
where t.prod_model <>''
group by t.Prod_Model, t.Risk
order by t.Prod_Model
结果是 -
|Prod_Model|vulCnt| Risk_Level| Risk |
|procut 1 | 4 | 1 | Critical|
|procut 1 | 2 | 1 | High |
|procut 1 | 6 | 1 | Medium |
|procut 1 | 1 | 1 | Low |
|procut 2 | 4 | 1 | Critical|
|procut 2 | 2 | 1 | High |
|procut 2 | 6 | 1 | Medium |
|procut 2 | 1 | 1 | Low |
现在我需要顶部##。
我们将不胜感激。
【问题讨论】:
-
用您正在使用的数据库标记您的问题。
-
不明白。 “您正在使用的数据库”是什么意思?
-
可能您正在使用 MySql,因此您将始终获得 rsk_level 中的第一个元素。
-
@Amos: 你确定你使用的是 Sql Server 吗?
标签: sql sql-server tsql count window-functions