我有一个表的唯一性,如下所示:
ID DESC DATE NUMBER Amount
100 TEST1 01-01-18 1009674 10.20
100 TEST2 01-02-18 1009674 245.10
100 TEST3 01-03-18 1009942 156.000
100 TEST4 02-14-18 00042EX 154.6
100 TEST5 04-15-18 00042EX 25.10
100 TEST6 05-20-18 1011055 1564.0
我想要获取Number字段没有重复或不重复的唯一记录。
预期结果:
ID DESC DATE NUMBER AMOUNT
100 TEST3 01-03-18 1009942 156.000
100 TEST6 05-20-18 1011055 1564.0
我正在使用的查询:
SELECT * FROM UNIQUES
WHERE NUMBER NOT IN (SELECT NUMBER FROM
UNIQUES GROUP BY NUMBER HAVING COUNT(NUMBER)=1)
任何帮助或帮助都将不胜感激。
发布于 2018-08-02 22:59:39
我觉得你已经很接近了
SELECT * FROM UNIQUES
WHERE NUMBER IN (SELECT NUMBER FROM
UNIQUES GROUP BY NUMBER HAVING COUNT(NUMBER)=1)
你想要:
ID DESC DATE NUMBER AMOUNT
100 TEST3 01-03-18 1009942 156.000
100 TEST6 05-20-18 1011055 1564.0
我的回答是:
有几种很好的方法可以做到这一点,我只是根据这个问题采用最简单的方法,只需将其从NOT IN
改为IN
发布于 2018-08-02 22:57:21
您可以使用subquery
:
select u.*
from uniques u
where not exists (select 1 from uniques u1 where u1.number = u.number and u1.desc <> u.desc);
发布于 2018-08-02 23:23:28
我只会使用窗口函数:
select u.*
from (select u.*, count(*) over (partition by number) as cnt
from uniques u
) u
where cnt = 1;
https://stackoverflow.com/questions/51656616
复制相似问题