首页 > 解决方案 > SQL Count of the same country,相同的名字,相同的姓氏的人相同的年龄(例如史密斯)

问题描述

我需要你的建议。

我们有下表

表名:PEOPLE(我知道不好的名字,例如 :-))

ID       | firstname | age | country
1        | George    | 20  | US
1        | George    | 20  | GB
2        | Jim       | 20  | FR
2        | Jim       | 21  | FR

我需要看到下面的结果,所以对于相同的 ID 值计数

ID | firstnamecnt | agecnt | countrycnt
1  | 2            | 2      | 1
2  | 2            | 1      | 2

我希望我解释得很好:-)

谢谢和问候, 亚历克斯

标签: sqlcountduplicatesteradata

解决方案


我假设你的意思是名字。这是一种方法

select id, 
       count(*) - count(distinct firstname) + 1 as firstnamecnt,
       count(*) - count(distinct age) + 1 as agecnt,
       count(*) - count(distinct country) + 1 as countrycnt
from people
group by id;

演示


推荐阅读