我有这个查询,并希望缩进输出并从最后一列获得总数。 现在它给出了
person |year|dossiers
------------------------------------------------|----|--------
9210124 |1110| 166
9210124 |1111| 198
9210124 |1112| 162
9210161 |1110| 183
9210161 |1111| 210
9210161 |1112| 142
我想要
person |year|dossiers
------------------------------------------------|----|--------
9210124 |1110| 166
|1111| 198
|1112| 162
9210161 |1110| 183
|1111| 210
|1112| 142
total 1061
这里是查询
select
pers_nr "person",
to_char(import_dt,'YYMM') "year and month",
count(pers_nr) "dossiers"
from
rdms_3codon
where
trunc(import_dt) >= trunc(trunc(sysdate, 'Q') -1, 'Q')
and trunc(import_dt) < trunc(sysdate, 'Q')-1/(24*60*60)
group by
pers_nr,
to_char(import_dt,'YYMM')
order by
pers_nr
有人能帮帮我吗?
答案 0 :(得分:6)
如评论中所述,这是一个客户端功能,而不是数据库功能。例如,如果您使用的是SQL * Plus,则可以使用:
break on person
break on report
compute sum label total of dossiers on report
第一行抑制重复的人值;第二个和第三个一起产生底部的总数。 SQL * Plus输出格式化等记录在here。
答案 1 :(得分:0)
试试这个。它会给你至少总数,但其余的 对于pers_id,也可以使用RANK()替换为NULL 或者在您的申请代码中,如果有的话......
select
pers_nr "person",
to_char(import_dt,'YYMM') "year and month",
SUM(count(pers_nr)) OVER (ORDER BY year)
FROM ....
希望它有助于升技