[英]Get Count() for DISTINCT values for each field SQL Server
I have a phonenumber field like: 我有一个phonenumber字段,如:
**phonenumbers**
0729643482
0723412678
0734231567
0745297334
0729643482
0720606706
0729643482
0720606706
There are thousands of entries. 有数以千计的条目。 I wanted to get top 10 phonenumbers with greatest count.
我想获得最多的前10名电子邮件。 this can be displayed as
这可以显示为
**phonenumber count**
0729643482 3
0720606706 2
.
.
.
(entry 10) 1
From some of the few related questions i understand i can use rank() then group by but i have never done this before. 从我理解的一些相关问题我可以使用rank()然后分组,但我以前从未这样做过。 Here is what i have:
这是我有的:
select phonenumber,cnt FROM
(select phonenumber, cnt, rank() over (partition by phonenumber order by cnt desc) rnk
from (select distinct phonenumber, count(phonenumber) cnt
from ozekiout
group by phonenumber
order by phonenumber, count(phonenumber) desc)
)
where rnk = 1;
You don't need the rank function, you can use a normal count with TOP 10
: 你不需要等级功能,你可以使用
TOP 10
的正常计数:
SELECT TOP 10 phonenumber, [count] = COUNT(*)
FROM ozekiout
GROUP BY Phonenumber
ORDER BY [count] DESC;
If you want to include more than 10 results if there are ties eg 如果您想要包含10个以上的结果,例如
Phonenumber count
01111111111 18
01111111112 15
01111111113 15
01111111114 14
01111111115 13
01111111116 13
01111111117 12
01111111118 12
01111111119 10
01111111120 10
01111111121 10
01111111122 10
.... CUT OFF
01111111122 9
you can use: 您可以使用:
SELECT TOP 10 WITH TIES phonenumber, [count] = COUNT(*)
FROM ozekiout
GROUP BY Phonenumber
ORDER BY [count] DESC;
尝试这个 :
select phonenumber,Count(*) as count from ozekiout group by phonenumber order by count desc limit 10;
SELECT TOP 10 phonenumber, [count] = COUNT(*) FROM ozekiout GROUP BY Phonenumber ORDER BY [count] DESC; SELECT TOP 10 phonenumber,[count] = COUNT(*)FROM ozekiout GROUP BY Phonenumber ORDER BY [count] DESC;
Works ryt....thank you guys 工作ryt ....谢谢你们
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.