Я хочу сделать запрос q1
и использовать результат q1
для второго запроса q2
. Я хочу отобразить все столбцы q1
и q2
, чтобы результаты основывались на общем столбце.
(Пожалуйста, дайте мне знать, если заголовок не так ясен)
Пример ниже должен отображать столбцы [id
, publisher
, author
] в q1
. Я хочу передать их q2
, получить свойства [id
, cited_id
, category
] для всех элементов в столбце id
q1
.
Как результат, для каждого id
я хочу отобразить все cited_ids и их свойства (как идентификаторов, так и cited_ids).
В качестве альтернативы, для лучшей наглядности также можно получить массив cited_ids для каждого идентификатора, и в отдельном запросе я украслю свои идентификаторы и cited_ids с их свойствами.
Пожалуйста, сообщите также о "производительности" (я использую bigquery, так что если вы могли бы объяснить, почему решение более эффективно, что поможет сэкономить вычислительные ресурсы!).
Я придумал это, но не могу отобразить все столбцы q1.
WITH q1 AS (
SELECT id, publisher, a.name
FROM `db.publications`,
UNNEST (publisher) as h,
UNNEST (author) as a
WHERE h Like '%penguin%'
)
SELECT p.id, c.id AS Cited, c.Category AS Cat
FROM `db.publications` AS p, UNNEST(citation) AS c
WHERE p.id IN (SELECT id from q1)
Пример данных:
# result of q1
Row | Id | Publisher | Author
1 | item0 | penguin | Bob
2 | item0 | penguin | Alice
3 | item1 | penguin | Charlie
Я хочу найти другие элементы, на которые ссылается каждый уникальный элемент в q1 (item0, item1).
Я могу sh получить результаты в удобном формате, который можно используется следующим образом:
# Citations: books mentioned by item0, item1 ...
item0 : [item10, item15, item100]
item1 : [item23, item0, item101, item15]
..
# Decorators : information about each book:
Row | Id | Publisher | Author(s) |
Мой вопрос может ли достичь как в одном запросе? Если это так, удобно или лучше разделить на два отдельных запроса для меньших вычислительных ресурсов? Мой подход - сначала запросить набор книг и их декораторов, а затем использовать список идентификаторов, чтобы найти их цитаты. Я не мог нести декораторы вместе с приведенным выше примером.