暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Oracle 选择和重复

askTom 2017-10-17
207

问题描述

你好,

我想从ma表中删除重复项,假设V1是键列。键的长度最多应为5位数字

示例:
V1

01254T
50300
50300W
45662

在这里,我应该保留第一个 (没有重复),50300和最后一个。

我试过这个查询,但不起作用

选择选项卡。*
从mytable选项卡
加入 (
选择substr(V1,1,5) 作为tab1,min (长度 (V1))
从选项卡
按substr分组 (V1,1,5)
) tab1
关于substr (公司V1,1,5) = tab1.subb;

你能帮忙吗?

谢谢

米拉






专家解答

SQL> create table t ( x varchar2(10));

Table created.

SQL>
SQL> insert into t values ('01254T');

1 row created.

SQL> insert into t values ('50300');

1 row created.

SQL> insert into t values ('50300W');

1 row created.

SQL> insert into t values ('45662');

1 row created.

SQL>
SQL> select x,
  2    count(*) over ( partition by substr(x,1,5)) as c
  3  from t;

X                   C
---------- ----------
01254T              1
45662               1
50300W              2
50300               2

4 rows selected.

SQL>
SQL> select *
  2  from (
  3  select x,
  4    count(*) over ( partition by substr(x,1,5)) as c
  5  from t
  6  )
  7  where c = 1;

X                   C
---------- ----------
01254T              1
45662               1

2 rows selected.

复制


「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论