如何通过 Vertica SQL 中的多列及其类别获取主键的计数?
How to get count of Primary key by multiple columns and their categories in Vertica SQL?
我有 table 如下所示。 (3 列和 10 行)
ID cat_1 cat_2
1001 High High
1002 Mid High
1003 Mid High
1004 <null> <null>
1005 <null> Low
1006 High High
1007 <null> <null>
1008 High Mid
1009 Low Low
1010 High High
我想计算每列的 ID 数。我不想 运行 多个查询。有没有简单的方法可以做到这一点?
Category cat_1 cat_2
High 4 5
Mid 2 1
Low 1 2
<null> 3 2
目前,我只知道 运行 group by statements ("select cat_1, count(ID) from table 的多个查询按 1") 分组。我知道这种方法是不正确的。谢谢!
您可以逆透视和聚合。这是一个通用的方法:
select cat, sum(cat_1), sum(cat_2)
from ((select cat_1 as cat, 1 as cat_1, 0 as cat_2
from t
) union all
(select cat_2, 0 as cat_1, 1 as cat_2
from t
)
) c
group by cat;
Here 是一个 db<>fiddle.
我有 table 如下所示。 (3 列和 10 行)
ID cat_1 cat_2
1001 High High
1002 Mid High
1003 Mid High
1004 <null> <null>
1005 <null> Low
1006 High High
1007 <null> <null>
1008 High Mid
1009 Low Low
1010 High High
我想计算每列的 ID 数。我不想 运行 多个查询。有没有简单的方法可以做到这一点?
Category cat_1 cat_2
High 4 5
Mid 2 1
Low 1 2
<null> 3 2
目前,我只知道 运行 group by statements ("select cat_1, count(ID) from table 的多个查询按 1") 分组。我知道这种方法是不正确的。谢谢!
您可以逆透视和聚合。这是一个通用的方法:
select cat, sum(cat_1), sum(cat_2)
from ((select cat_1 as cat, 1 as cat_1, 0 as cat_2
from t
) union all
(select cat_2, 0 as cat_1, 1 as cat_2
from t
)
) c
group by cat;
Here 是一个 db<>fiddle.