oracle

oracle 中怎么统计个数之后再求和

SQL 帆软用户553HePnWOy 发布于 2024-1-4 15:51
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共3回答
最佳回答
0
Z4u3z1Lv6专家互助
发布于2024-1-4 15:52(编辑于 2024-1-5 10:59)

外套一层  select

比如 SELECT SUM(COUNT_) SUM_ FROM (

你原来的SQL

) A

--------------

SELECT SUM(COUNT_) [SUM_] FROM (

SELCET 字段1,COUNT(字段2) [COUNT_] FROM 表 GROUP BY 字段1

) A

---------

SELECT T.year_,SUM(T.COUNT_) [SUM_],T.NAME FROM(

SELECT TO_CHAR(RQ,'YYYY')as year_,count(A.MC) [COUNT_],B.NAME FROM PROJECT A LEFT JOIN PROJECT_CLASS B ON A.XZ=B.ID WHERE RQ >= SYSDATE - INTERVAL '4' YEAR AND (B.NAME = '老师' OR B.NAME = '学生') group by B.NAME,TO_CHAR(RQ,'YYYY')

) T GROUP BY T.year_,T.NAME

union all

SELECT TO_CHAR(RQ,'YYYY')as year_,count(A.MC) [COUNT_],B.NAME FROM PROJECT A LEFT JOIN PROJECT_CLASS B ON A.XZ=B.ID WHERE RQ >= SYSDATE - INTERVAL '4' YEAR AND (B.NAME = '老师' OR B.NAME = '学生') group by B.NAME,TO_CHAR(RQ,'YYYY')

  • Z4u3z1 Z4u3z1 回复 帆软用户553HePnWOy(提问者) 举例更新了一下,应该能看明白了吧
    2024-01-04 16:47 
  • Z4u3z1 Z4u3z1 回复 帆软用户553HePnWOy(提问者) 我觉得你还是贴你的SQL吧~~
    2024-01-05 10:23 
  • Z4u3z1 Z4u3z1 回复 帆软用户553HePnWOy(提问者) 补充在最上面了
    2024-01-05 10:31 
  • Z4u3z1 Z4u3z1 回复 帆软用户553HePnWOy(提问者) 囧 看不出语法问题了。你把日志级别改成debug保存后再预览,报错后再去日志提取完整的SQL看看
    2024-01-05 10:38 
  • Z4u3z1 Z4u3z1 回复 帆软用户553HePnWOy(提问者) 修改在上面了 用个union 连接两个SQL
    2024-01-05 10:59 
最佳回答
0
七夜Lv6初级互助
发布于2024-1-4 19:25

把你的表结构列一下更好解答这个问题。

有两个思路,一个是嵌套子查询,一个是使用with子句。你百度下看看示例,应该能解决你的问题。

最佳回答
0
CD20160914Lv8专家互助
发布于2024-1-5 10:59

select 

t.year_,

t.name,

sum(t.个数1) as 个数1汇总,

sum(t.个数2) as 个数2汇总

 from(

select 

to_char(rq,'yyyy') as year_,

b.name,

count(a.mc) as 个数1

count(count_) as 个数2 

from project a 

left join project_class b on a.xz=b.id 

where rq >= sysdate - interval '4' year 

and (b.name = '老师' or b.name = '学生') 

group by to_char(rq,'yyyy') ,b.name

) t group by t.year_,t.name

  • 3关注人数
  • 231浏览人数
  • 最后回答于:2024-1-5 10:59
    请选择关闭问题的原因
    确定 取消
    返回顶部