互联网服务SQL

这个sql应该怎么写呢?

建表并插入数据:
create table tt(sal int,deptno int);

insert into tt values (2450,10),(1300,10),(1300,10),(5000,10),(4000,20);
查询:
select sum(distinct sal) over(partition by deptno) sal,deptno from tt;
DB2 Database Error: ERROR [42601] [IBM][DB2/NT] SQL0441N  Invalid use of keyword DISTINCT or ALL with function "SUM".  SQLSTATE=42601

请问各位大哥,这条sql应该怎么写才能成功呢?
参与16

15同行回答

共同进步共同进步数据库架构师中国金融电子化公司
select sum(sal),deptno from tt group by deptno;select sum(sal) over(partion by deptno),deptno from tt;select sum(sal),deptno from (select distinct sal,deptno from tt) group by deptno;select distinct  sum(sal) over(partion by deptno),deptno ...显示全部
select sum(sal),deptno from tt group by deptno;
select sum(sal) over(partion by deptno),deptno from tt;
select sum(sal),deptno from (select distinct sal,deptno from tt) group by deptno;
select distinct  sum(sal) over(partion by deptno),deptno from tt;
select count(distinct sal),deptno from tt group by deptno;
select sum(distinct sal),deptno from tt group by deptno;收起
软件开发 · 2013-12-13
浏览1386
共同进步共同进步数据库架构师中国金融电子化公司
不知道你的需求是什么?显示全部
不知道你的需求是什么?收起
软件开发 · 2013-12-13
浏览1349
TUBER727TUBER727数据库开发工程师DB2
回复 9# luckylee77    select  sum(sal) over(partition by deptno),deptno from (select distinct sal,deptno from tt);    你求的是部门下不同薪水之和吗。显示全部
回复 9# luckylee77

   select  sum(sal) over(partition by deptno),deptno from (select distinct sal,deptno from tt);
   你求的是部门下不同薪水之和吗。收起
互联网服务 · 2013-12-06
浏览1426
DB-TrendSetterDB-TrendSetter联盟成员数据库架构师公司
SUM(DISTINCT  xxx) ,高版本的也没这种语法。显示全部
SUM(DISTINCT  xxx) ,高版本的也没这种语法。收起
电信运营商 · 2013-12-04
浏览1384
luckylee77luckylee77数据库管理员amssy
回复 11# leo_wyn 谢谢,我的db2版本比较低,是8.2的,请问高版本的支持‘select sum(distinct sal) over(partition by deptno) sal,deptno from tt; ’这种写法吗?显示全部
回复 11# leo_wyn

谢谢,我的db2版本比较低,是8.2的,请问高版本的支持‘select sum(distinct sal) over(partition by deptno) sal,deptno from tt; ’这种写法吗?收起
互联网服务 · 2013-12-04
浏览1450
leo_wynleo_wyn商业智能工程师Security
select   deptno, sum(sal) salfrom (  select     sal, deptno, row_number() over (partition by deptno, sal order by sal) num   from tt) a where num = 1group by deptno显示全部
select
  deptno, sum(sal) sal
from (
  select
    sal, deptno, row_number() over (partition by deptno, sal order by sal) num
  from tt
) a

where num = 1

group by deptno收起
系统集成 · 2013-12-04
浏览1511
leo_wynleo_wyn商业智能工程师Security
你的意思是只要每个deptno中,不重复sal的合计?显示全部
你的意思是只要每个deptno中,不重复sal的合计?收起
系统集成 · 2013-12-04
浏览1541
luckylee77luckylee77数据库管理员amssy
回复 8# TUBER727    distinct是想要去除sal中的重复值后,在计算和。显示全部
回复 8# TUBER727


   distinct是想要去除sal中的重复值后,在计算和。收起
互联网服务 · 2013-12-04
浏览1570
TUBER727TUBER727数据库开发工程师DB2
select sum(sal) over(partition by deptno,sal) sal,deptno from tt;不知道你这个distinct的意义是什么,试试上面的。显示全部
select sum(sal) over(partition by deptno,sal) sal,deptno from tt;
不知道你这个distinct的意义是什么,试试上面的。收起
互联网服务 · 2013-12-04
浏览1603
欧阳峰欧阳峰其它Freelancer
select distinct sal,sum(sal) over(partition by deptno) sum_sal,deptno from tt直接在sum() over()里面放入distinct好像不支持这样写法显示全部
select distinct sal,sum(sal) over(partition by deptno) sum_sal,deptno from tt
直接在sum() over()里面放入distinct好像不支持这样写法收起
IT其它 · 2013-12-02
浏览1514

提问者

luckylee77
数据库管理员amssy

相关问题

相关资料

相关文章

问题状态

  • 发布时间:2013-12-02
  • 关注会员:1 人
  • 问题浏览:11229
  • 最近回答:2013-12-13
  • X社区推广