我是PlSQL的新手。我有这个表,表示2个表之间的关系:
ID T1Id T2Id
-- ---- ----
1 1 1
2 2 1
3 2 2
4 2 3
5 3 1
...
我在第二列(T1Id)中有值,它可能有一个或多个来自第三列(T2Id)的值。 我的问题是如何只选择T1Id值超过1的T1Id值。
你有什么想法吗?
答案 0 :(得分:3)
如果您只想要表中有多个T1Id值,可以使用下面的内容。
select T1Id, count(T1Id) as countT1 from yourTable
group by T1Id
having count(T1Id) > 1
如果您想选择其他列,可以使用行分区来实现此目的
SELECT *
FROM (SELECT a.*, COUNT (*) OVER (PARTITION BY t1id) AS countT1
FROM yourTable a)
WHERE countT1 > 1