SQL 通过对两列进行分组来计数和非重复计数 (*)

SQL Count, and distinct count(*) by grouping two columns

我有一个包含 2 个字段的 table:其中 someid2 是唯一字段

GID  Name     Some_ID1    Some_ID_2 (unique)     
--  -------  -------    -------
1   A         A1           K1
1   A         A1           K2   
1   A         A1           K3
1   A         A2           K4
2   B         B1           K4
3   C         C1           K5
3   C         C2           K6
3   C         C3           K7
3   C         C4           K8

我想按名称和 Gid 对它们进行分组,'count' 两列

  GID  Name     Count(Some_ID1)    Count(Some_ID_2)      
    --  -------  -------           -------
    1   A         2                4
    2   B         1                1
    3   C         4                4

我试过的是将列 gid 和名称分组,但我无法计算出 some_id1

SELECT
gid, name
count( Some_id1) as Some_id1_count , -- need to fix count here
count( Some_id2) as Some_id2_count 
FROM table_a        
GROUP BY gid, name

我想你只是想要 count(distinct):

select gid, name, count(distinct some_id1) cnt1, count(*) cnt2
from table_a
group by gid, name