2015-10-27 67 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(*);