在mysql中,有没有办法得到group by语句的倒数呢?我的用例是删除所有重复项。
假设我的表是这样的:
ID | columnA | ...
1 | A
2 | A
3 | A
4 | B
5 | B
6 | C我希望我的结果集看起来像这样:
ID | columnA | ...
2 | A
3 | A
5 | B(从本质上讲,这会找到所有的重复项,只留下一个。可用于将所有重复记录清除到1,或稍后执行其他分析)。
发布于 2016-07-13 02:53:39
一种方法是对ColumnA的每个值采用除第一个id之外的所有id
select t.*
from t
where t.id > (select min(t2.id) from t t2 where t2.columnA = t.columnA);发布于 2016-07-13 02:54:01
这应该比基于内部select的查询执行得好得多。
SELECT
*
FROM
TABLE
QUALIFY
RANK() OVER (partition by columnA order by ID ASC ) = 1 编辑:这显然不适用于MySQL。我猜唯一的答案是通过oracle许可-或者使用另一种答案。;)
发布于 2016-07-13 02:57:18
你的结果似乎
select max(id), columnA group by columnAhttps://stackoverflow.com/questions/38336748
复制相似问题