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
我有一个包含 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