У меня есть следующая таблица данных:
RowID| Col1 | Col2 |
----------------------
1 | apple | cow |
2 | orange | dog |
3 | apple | cat |
4 | cherry | fish |
5 | cherry | ant |
6 | apple | rat |
Я хочу попасть в эту таблицу:
RowID| Col1 | Col2 | newCol
------------------------------
1 | apple | cow | cat
2 | apple | cow | rat
3 | orange | dog | na
4 | apple | cat | cow
5 | apple | cat | rat
6 | cherry | fish | ant
7 | cherry | ant | fish
8 | apple | rat | cow
9 | apple | rat | cat
Чтобы помочь визуализировать логику вышеприведенной таблицы, она будет по существу такой же, как и в приведенной ниже таблице, но столбец списка будет разбит на строки в зависимости от имеющихся значений. Он соответствует значениям в столбце col1, поэтому, например, строки 1, 3 и 6 исходной таблицы содержат «яблоко» в первом столбце. Поэтому новый столбец списка будет включать все значения Col2 соответствующих строк. Затем разверните в новую строку для каждого элемента списка. Вторая таблица выше - это результат, который я хочу получить. Эта третья таблица предназначена для того, чтобы помочь визуализировать, откуда поступают значения.
RowID| Col1 | Col2 | newCol
------------------------------
1 | apple | cow | cat,rat (Row 3 & 6 match col1 values)
2 | orange | dog | na (No rows match this col1 value)
3 | apple | cat | cow,rat (Row 1 & 6 match col1 values)
4 | cherry | fish | ant (Row 5 matches col1 values)
5 | cherry | ant | fish (Row 4 matches col1 values)
6 | apple | rat | cow,cat (Row 1 & 3 match col1 values)