【发布时间】:2020-08-12 22:04:28
【问题描述】:
我在 Oracle SQL Developer 中有两个通过键 ID+状态连接的表。第一个 (t1) 有 4 列:
ID measurement Value state
123 Nitrogen .7 VA
123 Oxygen .1 VA
456 Nitrogen .6 MI
456 Carbon .5 MI
456 Oxygen .3 MI
第二个表(t2)有3列:
ID date state
123 5/20/20 VA
123 8/3/16 VA
我需要编写一个查询,首先在 t2 中搜索重复的 ID+状态,然后在第二个表中搜索具有少于三行的重复 ID+状态的实例。返回将是 t2 中重复的 ID 的计数,并且对于 t2 中的每个状态,在 t1 中具有少于三行的 ID。 在这个例子中:
VA - 1
MI - 0
在 Oracle 中是否有一种简单的方法可以做到这一点? 我已经尝试过以下 SQL 的迭代,并且无法找到正确的语法,并且想知道是否有更好的方法。我已经尝试了以下查询的多次迭代:
select a.ID, a.state count() totalcount from t2 A left join t1 B on a.ID=b.ID and a.state=b.state where b.ID having count < 3 group by a.id having count () >1
谢谢!
【问题讨论】: