2010-09-24 70 views
1

在數據庫中有列值出現在多行中。的示例行是以下(以CSV格式):如何從數據庫中選擇最頻繁的項目?

AFAB19476C2CEEEE101FFA45FD207BA8B6185B29,539EE0643AFC3A3BE3D20DC6BE7D5376DC536D34,9800,58,29,24,34,2 
A801DA9B2F4116A7A1B14A13532B2177C7436C43,91850E4C50536D45C9CEAFE5FB5B3A87154EB754,9800,15,15,15,15,1 
4C1E0B5387FB7FE19FC1ED682D0EB08249779180,9B17AE806C79437945F99C054B59A859D5639D11,9800,51,51,51,51,1 
5B83A4BE4161497C62471BF133A4E1AD905D25F8,BFF4CED4F54F221A76714B311623398070847B26,9800,71,71,71,71,1 
145145E49302ABBEEFF2797CAA8E122FFD3D5BFD,0C287F08E8E11DB4CF10CEB5801EBD61E7664FE4,9800,55,55,55,55,1 
99C1F96461BC870574D002034F001BA3F96A9AB5,2EC4F3158764DC07D981008B3054B97809A0B048,Tujina,34,34,34,34,1 
**CCB433630C735A8DA1B7828C10820B8CF91F25B9**,2C9C297BEF9CC1C0CF16A0559DE828FA0E226698,9817,339,169,137,202,2 
BF2A7F0A9AD762B46A4423F76BF0479B9A72F163,336FB392EA4EF85EFE2563332CDE7D32FCE711B2,9800,34,34,34,34,1 
... 
**CCB433630C735A8DA1B7828C10820B8CF91F25B9**,C4015FE337F1EEFA1ECE4143D77F9627BEB9D358,9800,464,464,464,464,1 
**CCB433630C735A8DA1B7828C10820B8CF91F25B9**,0EC08D78C637EF0A05E858B2BAC85C3EF05DF959,9800,73,73,73,73,1 

在該示例中的值CCB433630C735A8DA1B7828C10820B8CF91F25B9出現在具有不同值的組合三行。

我正在尋找一種方法來計算第一列中的值出現的行數,然後按包含該值的行數對值進行排序。

例如只能從第一行的值檢查查詢是以下

SELECT COUNT (*) FROM records WHERE column_1 = 'AFAB19476C2CEEEE101FFA45FD207BA8B6185B29' 

而是僅僅第一排的所有行的值都進行檢查。

如果你們中的任何人都可以建議一個合適的SQL查詢語句或函數來按重複次數對第一列中的所有值進行排序,我將非常感激。

謝謝!

回答

2
SELECT column_1, COUNT(*) 
FROM records 
GROUP BY column_1 
ORDER BY COUNT(*) DESC 
+0

+1 by'我喜歡一次性查詢位置別名不使用列位置別名在'順序,但發現他們都在生產代碼不太清楚。並使用'count(*)'來計算行數。 – 2010-09-25 06:54:27

1

下面會顯示在列1中的所有值的數量,按升序排列:

select column_1, count(*) 
from records 
group by column_1 
order by 2 asc 
1

會是這樣的工作?

SELECT column_1, COUNT(column_2) 
FROM records 
GROUP BY column_1 
ORDER BY COUNT(column_2) DESC 
相關問題