Я новичок в Oracle SQL, и мне нужно решить задачу, как показано ниже.
Я прикрепил изображение здесь, и что мне нужно сделать прямо сейчас, так это использовать SQL, чтобы показать результат, как правую сторону, так и левую..
Мне нужно перечислить столбец 2 (C2) и столбец 3 (C3) на основе столбца 1 (C1)
Если C2 и C3 получили только одну запись и нет повторяющихся записей,
тогда результат будет выглядеть так: первая строка: 4316, оранжевый грузоотправитель 1, Гонконг, Китай.
Однако есть некоторые сложные случаи, такие как 4343/4403/4406 в C1.
C2 может иметь дублированные записи, но C3 нет. есть, наоборот.
Я попытался использовать rank_over, тогда результат становится левой частью прикрепленного изображения.
SELECT t1.number AS C1,
t2.shipper AS C2,
rank() over (partition BY t2.shipper
ORDER BY t1.number) AS rank_over_c2,
t2.venue AS C3,
rank() over (partition BY t2.venue
ORDER BY t1.number) AS rank_over_c3
FROM table1 t1,
table2 t2
Но после этого я понятия не имею, как я могу получить результат, как правая сторона на прикрепленном изображении.
Изображение находится здесь:
Слева — исходные столбцы и данные, я хотел бы получить результат, как правая сторона