在mysql select查询中获取不同的值计数

时间:2013-04-04 17:16:58

标签: mysql sql database

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

id |号码|名字|输入

111 | 123 | XYZ |杆

222 | 234 | ABC |餐馆

111 | 007 | PKA |食品

111 | 123 | XYZ |杆

333 | 123 | XYZ |杆

现在我想得到的是具有唯一ID的数字的总大小。在我的情况下, 111 333 的含义与 123 的编号相同。因此,数字123的总数是2.这里我不想再次计算111,因为你可以看到111为数字123而来了两次,但我不想将它添加到总数中,因为它已经在那里伯爵。所以我想要具有相同数字的唯一id的计数。

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

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

234(ABC) - 1

007(PKA) - 1

我使用Group By查找重复值,但没有根据我的要求获得正确的输出。任何帮助或建议都会受到欢迎。

2 个答案:

答案 0 :(得分:3)

select number, count(distinct id)
from your_table
group by number

答案 1 :(得分:1)

也可能:

select id, number, name, type, 
       count(distinct id) over (partition by number) numOfDistictIds
from table
order by number