Вопрос

У меня есть стол с столбцами A, B, C и я хотел бы получить все комбинации записей, имеющих {b, c} уникальным. Это как значение B, и значение C появится только один раз в одном наборе.

У вас есть идеи, как это добиться этого?Я предполагаю, что выход должен содержать одну комбинацию в одном ряду, что не является проблемой.

Чтобы понять это пример:

    .
  • 1,1,0
  • 6,1,1
  • 1,1,2
  • 3,2,0
  • 5,2,1
  • 1,2,3

Одной из возможных комбинаций является {1,1,0}, {1,2,3}, а {6,1,1}, {5,2,1} не, потому что значение столбца C '1«Не уникален.То, что я хотел бы получить такой вывод:

1,1,0,1,2,3

6,1,1,1,2,3
.

IOW Вывод будет N-кортежи, имеющие значения B, C, уникальные.

Это было полезно?

Решение

Я думаю, что вы хотите, чтобы странная версия себя присоединиться:

select t1.*, t2.*
from table t1 join
     table t2
     on t1.b <> t2.b and t1.c <> t2.c;
.

Это вернет все пары из таблицы, где столбцы b имеют различные значения, а столбцы Renacodicetacodcode имеют различные значения.

Другие советы

Это то, для чего есть группа.Он сочетает в себе все записи с одинаковыми значениями в группе по списку в одну строку.

select B, C
from my_table
group by B, C
.

Вопрос немного расплывчатой, если вы хотите только значения решения B & C используют решение @linger, если вы хотите, если вы хотите, чтобы все поля для записей, которые имеют комбинацию B, C, которая возникает в этой записи, но нигде не использовать

SELECT MAX(A),B,C FROM T
GROUP BY B,C
HAVING COUNT(*) = 1
.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top