Sql Oracle:如何选择不重复的行
我必须去掉那些值为X的,重复的。如果他们没有一个X,他们留下来,如果他们有一个X,但没有重复,他们留下来。你能帮忙吗 桌子 Id值 1.A. 2.十,。 3.十,。 3.C 3.D 4.十,。 4.F 5.G 6.Z 7.X 8.X 8.G 查询结果应为: 1. A 2. X 5. G 6. Z 7. X 1.A. 2.X 5.G 6.Z 7.X 也许这有助于:Sql Oracle:如何选择不重复的行,sql,oracle,Sql,Oracle,我必须去掉那些值为X的,重复的。如果他们没有一个X,他们留下来,如果他们有一个X,但没有重复,他们留下来。你能帮忙吗 桌子 Id值 1.A. 2.十,。 3.十,。 3.C 3.D 4.十,。 4.F 5.G 6.Z 7.X 8.X 8.G 查询结果应为: 1. A 2. X 5. G 6. Z 7. X 1.A. 2.X 5.G 6.Z 7.X 也许这有助于: SELECT Id, Value FROM(SELECT Id, Value,
SELECT Id,
Value
FROM(SELECT Id,
Value,
COUNT(*) OVER (PARTITION BY Id) cnt,
SUM(DECODE(Value, 'X', 1, 0)) OVER (PARTITION BY Id) sumx
FROM your_table
)
WHERE cnt = 1 OR sumx = 0;
这还不够吗
SELECT "Id", MIN("Value") "Value" FROM T
GROUP BY "Id" HAVING COUNT("Id") = 1
ORDER BY "Id"
它也将放弃给定id的多个only-non-X值。至少,根据您的样本数据,它似乎产生了预期的结果:
ID VALUE
1 A
2 X
5 G
6 Z
7 X
请参见在选择查询中使用
distinct
关键字如果您想查看唯一的值
列值我无法理解您的问题,您能更好地解释一下吗?感谢从表1组中选择id,id的计数(id)=1如果它们是重复的,但都没有X?,例如9A、9C,但没有9X,会发生什么。您是退回9A和9C,还是只退回其中一个?如果是,哪一个?如果它们是重复的,所有的都有一个X怎么办?我做得很好,非常感谢。。这个社区有规则。。!!我很感激各位,并期待着为之做出贡献和付出。。祝大家今天愉快!!:)(重复评论,因为感觉是一样的..谢谢)我做得很好,非常感谢。。这个社区有规则。。!!我很感激各位,并期待着为之做出贡献和付出。。祝大家今天愉快!!:)
ID VALUE
1 A
2 X
5 G
6 Z
7 X