0

我在 MySQL 中有一张表,如下所示。

编号 | 号码 | 姓名 | 类型

111 | 123 | XYZ | 酒吧

222 | 234 | 美国广播公司 | 餐馆

111 | 007 | PKA | 食物

111 | 123 | XYZ | 酒吧

333 | 123 | XYZ | 酒吧

现在我想得到的是具有唯一 ID 的数字的总大小。在我的情况下,含义111333具有相同的数字,即123。所以数字 123 的总数是 2。在这里我不想再数 111,因为你可以看到 111 出现了两次,因为数字 123 但我不想将它添加到总大小中,因为它已经存在计数。所以我想要具有相同数字的唯一 ID 计数。

我想从查询中得到的输出是:-

123 (XYZ) - 2 (总共有 3 个条目,但 111 id 重复编号 123,我不想重复一个。所以我想在计算时同时考虑 id 和数字。)

234 (ABC) - 1

007 (PKA) - 1

我使用 Group By 来查找重复值,但没有按照我的要求获得正确的输出。欢迎任何帮助或建议。

4

2 回答 2

3
select number, count(distinct id)
from your_table
group by number
于 2013-04-04T17:20:11.047 回答
1

也可以:

select id, number, name, type, 
       count(distinct id) over (partition by number) numOfDistictIds
from table
order by number
于 2013-04-04T17:22:34.240 回答