如何在没有区别的情况下获得唯一计数



我必须在Postgresql表中计算一些唯一的姓氏和名字。 问题是任务拒绝了 distinct 的使用。

我试图做什么:

SELECT COUNT(SURNAME), COUNT (NAME) FROM PEOPLE GROUP BY NAME, SURNAME;

输出:

1 1 1 1

1 等 (4939 行(

但看起来我做错了什么,因为在输出中我必须只得到两位数和计数。 知道该怎么处理吗?

您可以使用DISTINCT,方法是首先按名称或姓氏分组,然后对该中间表进行计数。

SELECT
(SELECT COUNT(*) FROM
(SELECT SURNAME FROM PEOPLE GROUP BY SURNAME) t) AS surname_cnt,
(SELECT COUNT(*) FROM
(SELECT NAME FROM PEOPLE GROUP BY NAME) t) AS name_cnt

相关内容

最新更新