sql按id从另一个表中获取列的总和

goqiplq2  于 2021-07-26  发布在  Java
关注(0)|答案(1)|浏览(268)

对sql非常缺乏经验,我发现自己需要编写一个查询。希望你能帮我理解我该怎么做:
我有两张table。
“表\u请求”包含所有请求,其中一些是批处理
“table\u pages”包含批处理的每个页面的信息,连接到“table\u request\u id”列上的“table\u requests”
此外,“table\u pages”有一个数字列“word\u count”,列出每页的数字,还有一个“table\u request\u id”列,可以与“table\u requests”的主键匹配。
对于我的查询,我想将“table\u requests”连接到匹配列上的“table\u pages”,然后从“table\u requests”中选择所有内容,并在末尾添加一个列,该列汇总每个“table\u requests”的“word\u count”(来自“table\u 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

谢谢大家,让我知道如果有任何更多的信息,我可以提供!

ygya80vv

ygya80vv1#

我认为最简单的方法是关联子查询:

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 ) .

相关问题