#sql #sap-iq #sybase-asa
#sql #sap-iq #sybase-asa
Вопрос:
У меня есть следующие данные. Мне нужно создать уникальные пары.
element1 element2
E1 C1
E1 C2
E2 C1
E2 C2
E3 C1
E3 C2
Как я могу использовать SQL для получения пар следующим образом:
E1,C1 E2,C2 Discard E3
Комментарии:
1. Определяем ли мы «уникальный» как «совпадение числовой части»?
2. Элемент1 и Элемент2 являются столбцами в одной таблице
3. Для решения этой проблемы вам нужны рекурсивные CTE. Я не думаю, что Sybase их поддерживает.
Ответ №1:
Я бы сделал что-то вроде:
select distinct a.element1, b.element2
from (
select element1, dense_rank() over(order by element1) as rank
from my_table
) a
join (
select element2, dense_rank() over(order by element2) as rank
from my_table
) b on a.rank = b.rank
Комментарии:
1. Приведенный выше код не работает. Это дает мне только E1, C1, а не E2, C2
2. Извините, я не могу это по-настоящему протестировать. У меня есть SAP ASE, но не SAP ASA.
3. Если вы выполняете внутренние запросы отдельно, получаете ли вы
rank
: (1, 2, 3) для первого и (1, 2) для второго?