2011-09-23 100 views
0

假设我有一个表项列:IDalias_onealias_two选择的约束是PLSQL

如何从其中存在对同一alias_one/alias_two双几个选择所有值提供不知道?

看起来像作为一个选项,组由alias_onealias_two可以使用,但不知它失败。

回答

1

它将返回其有另一行具有相同alias_one和alias_two但不同名称的所有表行。

select 
    id, 
    alias_one, 
    alias_two, 
    name 
from 
    (
    select 
    id, 
    alias_one, 
    alias_two, 
    name, 
    count (distinct name) over (partition by alias_one, alias_two) as cnt 
    from entries 
) 
where cnt > 1 
0

也许你需要

GROUP BY ALIAS_ONE||ALIAS_TWO 

OR

GROUP BY ALIAS_ONE||ALIAS_TWO 
HAVING COUNT(ALIAS_ONE||ALIAS_TWO) > 1 
0

编辑:好吧,我想我现在明白了。试试这个:

select * from entries e where (alias_one,alias_two) in (select alias_one, alias_two 
from entries group by alias_one, alias_two having count(distinct name) > 1) 
+0

请参阅更新的问题 –

+0

这并没有为我清理任何东西。我认为这些名字就是你想得到的名字,所以显然他们不知道。 – pablochan

+0

好吧,我认为它现在应该工作。 – pablochan