2015-10-27 64 views
1

該表是這樣的:SQLite的選擇最常見

A  B 
---------- 
John  a 
John  a 
Peter a 
Mary  b 
Ann  b 
Ann  b 

我想要的結果是B組和A全選最常見的詞:

A  B 
---------- 
John  a 
Ann  b 
+0

你使用什麼SQLite版本? –

+0

使用SQLite版本3.9.1 – Joey1128

回答

0

首先我計算的數量B,A組合,然後根據BI計算最大數量(MaxN),最後在外部查詢中再次計算計數,但僅顯示具有以下幾行的行:maxN=COUNT(*)

SELECT t.B, t.A, COUNT(*) as N 
FROM Table t LEFT JOIN 
(SELECT B, MAX(N) AS MaxN 
FROM (
    SELECT B, A, count(*) as N 
    FROM Table 
    GROUP BY B, A) as c 
GROUP BY B) as mx on t.B=mx.B 
GROUP BY t.B, t.A 
HAVING mx.MaxN=COUNT(*);