簡體   English   中英

AWS Redshift sql 分組方式

[英]AWS Redshift sql grouping by

我正在研究具有以下列的 Redshift 數據庫表。

Impact                                                rootcause
1 - Company impacted                                  dependent
2 - Org impacted                                      dependent
2 - Org impacted                                      Monitoring Autocut
2 - Org impacted                                      Duplicate
3 - Group impacted                                    Operational - Question/No Issue
3 - Group impacted                                    Monitoring Autocut
3 - Group impacted                                    Duplicate
4 - Individual impacted                               Operational - Question/No Issue
4 - Individual impacted                               Monitoring Autocut
4 - Individual impacted                               Duplicate
5 - No impact                                         Operational - Question/No Issue
5 - No impact                                         Monitoring Autocut
5 - No impact                                         Duplicate

我的目標是獲取以下格式的數據。 3 - 群體影響,4 - 個人影響,5 - 無影響應歸為“低”嚴重性。 1 - 公司受影響,2 - 受影響的組織應歸為“高”嚴重性。

Severity              rootcause                                   count
Low                   Operational - Question/No Issue             3
Low                   Monitoring Autocut                          3
Low                   Duplicate                                   3
High                  dependent                                   2
High                  Monitoring Autocut                          1
High                  Duplicate                                   1

我在下面寫了 sql 查詢。

select 
CASE WHEN Impact IN ('1 - Company impacted','2 - Org impacted') THEN 'High' 
WHEN assigned_min_impact IN ('3 - Group impacted','4 - Individual impacted','5 - No impact') THEN 'Low' 
ELSE 'NA' END as severity, 
rootcause, count(*) from TABLE 
group by Impact, root_cause;

上面的查詢沒有給出想要的結果。 有人可以請我幫忙嗎?

您必須在group by中添加case表達式,如下所示

select 
  CASE 
    WHEN Impact IN ('1 - Company impacted','2 - Org impacted') THEN 'High' 
    WHEN assigned_min_impact IN ('3 - Group impacted','4 - Individual impacted','5 - No impact') THEN 'Low' 
    ELSE 'NA' 
  END as severity, 
  rootcause, 
  count(*) 
from TABLE 
group by 
  rootcause,   
  CASE 
    WHEN Impact IN ('1 - Company impacted','2 - Org impacted') THEN 'High' 
    WHEN assigned_min_impact IN ('3 - Group impacted','4 - Individual impacted','5 - No impact') THEN 'Low' 
    ELSE 'NA' 
  END;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM