我必须在Postgresql表中计算一些独特的姓氏和名字。 问题是任务拒绝使用distinct。
我试图做的事情:
SELECT COUNT(SURNAME), COUNT (NAME) FROM PEOPLE GROUP BY NAME, SURNAME;
输出:
1 1 1 1 1等 (4939行)
但看起来我做错了什么,因为在输出中我必须只有两位带计数。 知道该怎么办吗?
答案 0 :(得分:1)
您可以先使用名称或姓氏进行分组,然后计算该中间表,然后使用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