sql - 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
我希望我解释得很好:-)
谢谢和问候, 亚历克斯
解决方案
我假设你的意思是名字。这是一种方法
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;
推荐阅读
- gravity - 机器人模型在运行模拟后从地板上掉下来
- php - 如何将 mysql 表中的 ID 显示为另一个表中的值?
- multidimensional-array - 如何清空多维数组?
- java - 当我将一个长变量传递给 Thread.Sleep() 时,这不起作用
- java - 如何在 Android 应用中查找文件输出流的目录?
- python-3.x - 在第 5 行用文本编辑器编写
- go - go install 不创建软件包的二进制文件,而 go get 能够
- memory - 循环管道占用大量内存
- regex - 在某些特殊情况下需要从删除中保存单行
- java - 是否有任何选项可以使用循环自动创建几个 ArrayLists?