[英]Get Count() for DISTINCT values for each field SQL Server
我有一個phonenumber字段,如:
**phonenumbers**
0729643482
0723412678
0734231567
0745297334
0729643482
0720606706
0729643482
0720606706
有數以千計的條目。 我想獲得最多的前10名電子郵件。 這可以顯示為
**phonenumber count**
0729643482 3
0720606706 2
.
.
.
(entry 10) 1
從我理解的一些相關問題我可以使用rank()然后分組,但我以前從未這樣做過。 這是我有的:
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;
你不需要等級功能,你可以使用TOP 10
的正常計數:
SELECT TOP 10 phonenumber, [count] = COUNT(*)
FROM ozekiout
GROUP BY Phonenumber
ORDER BY [count] DESC;
如果您想要包含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
您可以使用:
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;
工作ryt ....謝謝你們
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.