0

私はテーブルを持っています:

env | app | prop_file | prop | value
qa1   e     a           a      testa
qa1   g     b           a      testa
qa1   s     c           a      testb
qa2   s     a           b      testc
qa2   s     d           b      testc
qa3   a     a           b      testc
qa4   z     g           c      testb
qa4   x     a           c      testb

次の結果が必要です。

env | prop_file | prop | value
qa1   a           a      testa
qa1   c           a      testb

要約すると、特定の「環境」内で特定の「小道具」の「値」が一致しない結果のみが必要です。「prop_file」または他の列が一致しない場合、それは問題ではありません。また、結果には、一致しない列の小道具ファイルが必要です。実際には、次の結果でも生きることができます。

env | prop_file | prop | value
qa1   a           a      testa
qa1   b           a      testa
qa1   c           a      testb

私はたくさんの結合とグループとカウントを試しましたが、exect 構文を突き止めることができないようです! 私を夢中にさせています。必要に応じて、ソース テーブルでさらに例を提供できます。

4

1 に答える 1

0

以下は、問題のある env/prop のリストを取得します。

select env, prop
from t
group by env, prop
having count(distinct value) > 1;

これは元のテーブルに結合して、問題のあるレコードを取得します。

select t.*
from t join
     (select env, prop
      from t
      group by env, prop
      having count(distinct value) > 1
     ) tep
     on t.env = tep.env and t.prop = tep.prop;
于 2013-09-06T16:10:27.927 に答える