Windows功能查询块-计数和总和

时间:2019-02-19 14:11:56

标签: database oracle

如何重写以下查询以利用窗口功能?

<Link to={i.categoria && i.categoria.id ? `/noticias/detalle/${i.categoria.id}/${i.id}` : 'WithoutCat'} key={i.id}>

1 个答案:

答案 0 :(得分:0)

您的问题的答案将是这样:

select DISTINCT bm.book_cd_id, 
       count(*) over ( partition by bm.book_cd_id), 
       sum(amt) over ( partition by bm.book_cd_id)
from   ldfods_prd.gl_fincl_dtl fd, 
       ldfods_prd.gl_book_cd_hier_mstr bm
where  fd.book_cd_mstr_id = bm.book_cd_mstr_id
and    fy = 2017 
and    acctg_prd = 1;

但这实际上是朝错误方向迈出的一步。您发布的查询基本上是“给我每个book_cd_id的结果集中的一条记录,并给我每条包含该book_cd_id的记录数以及这些记录的amt的总和列。”使用常规的聚合函数编写查询的方式正是这样做的方式。您不想仅仅为了它而引入窗口功能。

相关问题