我必须在Postgresql表中计算一些唯一的姓氏和名字。 问题是任务拒绝了 distinct 的使用。
我试图做什么:
SELECT COUNT(SURNAME), COUNT (NAME) FROM PEOPLE GROUP BY NAME, SURNAME;
输出:
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