SQL技术问询:如何统计各用户的distinct电话号码数量
解决方法:按用户统计去重后的电话号码数量
先明确你的原始数据:
| Name | Tel |
|---|---|
| John | 1234 |
| John | 1234 |
| John | 1000 |
| Test | 9999 |
你需要按Name分组,统计每个用户对应的去重后的电话号码数量,这可以通过GROUP BY结合COUNT(DISTINCT ...)来实现,具体SQL语句如下:
SELECT Name, COUNT(DISTINCT Tel) AS count FROM your_table_name GROUP BY Name;
语句说明:
COUNT(DISTINCT Tel):先对每个分组内的Tel字段去重,再统计剩余的有效号码数量,刚好满足重复手机号只算一次的需求。GROUP BY Name:按照Name字段分组,确保每个用户的统计结果单独成一行。AS count:给统计结果列设置别名,和你预期的结果列名保持一致。
执行这个查询后,就能得到你想要的结果:
| Name | count |
|---|---|
| John | 2 |
| Test | 1 |
内容的提问来源于stack exchange,提问作者Dev Db
相关产品推荐
相关产品推荐

