如何在SQLite中找到每个组的最高公共号?

时间:2012-08-21 19:49:00

标签: sqlite greatest-n-per-group

这是我的表格示例:

LETTER  NUMBER
a   1
a   2
a   4
b   1
b   2
b   3
c   1
c   2
c   3
d   1
d   2
d   3
e   1
e   2
e   3


我想要的结果:

LETTER  NUMBER
a   2
b   2
c   2
d   2
e   2

与'a'匹配的最高数字是4,而其他字母则是3。但是,它们共同的最高字母是2.这就是为什么结果表的数字为2。

有谁知道我怎么能做到这一点?

1 个答案:

答案 0 :(得分:3)

我们打电话给你的桌子l。这是一个非常低效的解决方案:

select l.LETTER, max(l.NUMBER)
from l
where
    (select count(distinct LETTER) from l)
  = (select count(distinct l2.LETTER) from l as l2 where l2.NUMBER = l.NUMBER)
group by l.LETTER;

有点乱,是吗?