开发者导航

作者:开发者导航 网址:www.codernav.com 简介:开发者常用的网址集锦。

博客园 首页 新随笔 联系 订阅 管理

1、row_number()方法

1
2
3
4
5
6
7
8
9
10
11
SELECT
    row_number () over (
        PARTITION BY v.action_id
        ORDER BY
            v.action_exp_id
    ) rank,
    v.*
FROM
    test_view20180122 v
WHERE
    v.rank = 1

根据重复字段进行分组后排序,取rank=1的记录

2、使用rownum,效率最高

1
2
3
4
5
6
7
8
9
10
11
12
13
SELECT
    *
FROM
    test_view20180122 v
WHERE
    v.rowid > (
        SELECT
            min(v1.rowid)
        FROM
            test_view20180122 v1
        WHERE
            v.action_id = v1.action_id
    )

但是对于有3条及以上重复记录的表还有问题,因为大于min()最小值的记录有多条,所以结果集还是会重复。

posted on 2018-07-17 23:16  开发者导航  阅读(162)  评论(0编辑  收藏  举报