SQL Получить сумму столбца из другой таблицы по идентификатору - PullRequest
0 голосов
/ 19 июня 2020

очень неопытен с SQL, и я обнаружил, что мне нужно написать запрос. Надеюсь, вы поможете мне понять, как я go об этом:

У меня две таблицы.

  • "table_requests" содержит все запросы, некоторые из которых пакеты

  • «table_pages» содержит информацию для каждой страницы пакета, подключается к «table_requests» в столбце «table_request_id»

Дополнительно , «table_pages» имеет числовой c столбец «word_count», в котором перечислены номера для каждой страницы, и столбец «table_request_id», который может соответствовать PK в «table_requests».

Для моего запроса я ' я хочу связать «table_requests» с «table_pages» в соответствующем столбце и выбрать все из «table_requests» с добавленным столбцом в конце, который суммирует «word_count» для каждого «table_request» (со всех страниц в «table_pages») .

На данный момент у меня есть:

select tr.id, tr.creation_date, sum(tp.word_count) as total_wc
from table_requests tr 
join table_pages cp on tp.table_request_id = tr.id

Спасибо всем, дайте мне знать, если есть дополнительная информация, которую я могу предоставить!

1 Ответ

1 голос
/ 19 июня 2020

Я думаю, что самый простой подход - это коррелированный подзапрос:

select 
    tr.*,
    (
        select sum(tp.word_count) 
        from table_pages tp 
        where tp.table_request_id = tr.id
    ) total_wc
from table_requests tr

Для повышения производительности этого запроса убедитесь, что у вас есть индекс на table_pages(table_request_id ).

...