Сложное соединение двух таблиц - столбцы представляют собой сгруппированные значения из второй таблицы

Итак, я пытаюсь сделать что-то вроде pivot (?) таблицы для моего проекта django, но безуспешно - подробности:

Первая таблица - 'keyword':

|   id     |      name      |     fk_project_id |
| -------- | -------------- |-------------------|
| 1        |      stack     |         1         |
| 2        |      overflow  |         1         |

Вторая таблица - 'position':

|   id     |   fk_keyword_id |   rank |date_created| region |
| -------- | ----------------|--------|------------|--------|
| 1        |      1          |    22  |2021-01-01  |   UK   |
| 2        |      1          |    44  |2021-01-02  |   UK   |
| 3        |      1          |    55  |2021-01-02  |   FR   |
| 4        |      2          |    11  |2021-01-01  |   FR   |
| 4        |      2          |    22  |2021-01-02  |   FR   |

Я хочу объединить эти таблицы в одну, где первым столбцом будет keyword.name, а все остальные будут создаваться динамически на основе значений 'date_created' и 'region' из второй таблицы, чтобы получилось что-то вроде этого:

| keyword_name|   UK,2021-01-01 |   UK,2021-01-02|FR,2021-01-01|FR,2021-01-02|
| ----------- | ----------------|----------------|-------------|-------------|
| stack       |      22         |    44          |     55      |     null    |
| overflow    |      null       |    null        |     11      |      22     |

Я использую django с postgresql, так что я могу получить все необходимые имена столбцов перед тем, как сделать запрос (с отдельным запросом), и могу создать строку запроса с помощью цикла, но я не очень хорошо разбираюсь в sql и не знаю с чего начать - django orm обычно более чем достаточно для моих нужд, и я пытаюсь сделать это с помощью django's orm, но мой comlex queryset не работает правильно, когда я пытаюсь упорядочить данные по столбцам ( вот мой одинокий вопрос об этом).

Возможно ли это с помощью необработанного SQL?

И есть ли правильный (или единственный) способ сделать это?

Буду благодарен за любую помощь, направление, что угодно!

Вернуться на верх