簡體   English   中英

獲取每個字段SQL Server的DISTINCT值的Count()

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM