(高分求解)数据库条记录中,查询出来总共的 Q值,以及,最大的P值,最大P值对应发生的时间。

滴答滴答昵称 2014-11-25 05:05:13

SELECT
YS.ACLN_ID,
YS.ACLN_NAME,
SUM(YS.Q) AS SUMQ,
MAX(YS.P) OVER() MAXP,
MAX(YS.OCCUR_TIME) OVER() AS MAXTIME
FROM
GRID.LINE_LOSS_DAY YS
WHERE
YS.CITY_ID = 3
AND YS.ACLN_ID = 240000075
GROUP BY
YS.ACLN_ID,
YS.ACLN_NAME,
YS.P,
YS.OCCUR_TIME

...全文
482 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
滴答滴答昵称 2014-11-26
  • 打赏
  • 举报
回复

SELECT
    YS.ACLN_ID,
    YS.ACLN_NAME,
    SUM(YS.Q)                 AS SUMQ,
    YS.P         AS    MAXP,
    YS.OCCUR_TIME AS MAXTIME,
	YS.Q AS MINQ,
	YS.OCCUR_TIME AS MINTIME
FROM
    GRID.LINE_LOSS_DAY YS,
    (SELECT A.P,A.OCCUR_TIME,A.Q,A.OCCUR_TIME FROM GRID.LINE_LOSS_DAY A  ORDER BY A.P DESC FETCH FIRST 1 ROWS ONLY) YS1
WHERE
     YS.ACLN_ID = 240000075
GROUP BY
    YS.ACLN_ID,
    YS.ACLN_NAME,
    YS.P,
	YS.Q,
    YS.OCCUR_TIME
大神,这个脚本对不对。
滴答滴答昵称 2014-11-26
  • 打赏
  • 举报
回复

SELECT
YS.ACLN_ID,
YS.ACLN_NAME,
SUM(abs(YS.P)) AS SUMP,
YS1.P AS MAXP,
YS1.OCCUR_TIME AS MAXTIME,
YS2.P AS MINP,
YS2.OCCUR_TIME AS MINTIME
FROM GRID.LINE_LOSS_DAY YS,
(SELECT A.P, A.OCCUR_TIME FROM GRID.LINE_LOSS_DAY A ORDER BY A.P DESC FETCH FIRST 1 ROWS ONLY) YS1,
(SELECT B.P, B.OCCUR_TIME FROM GRID.LINE_LOSS_DAY B ORDER BY B.P ASC FETCH FIRST 1 ROWS ONLY) YS2
WHERE YS.ACLN_ID = 240000075
AND YS.CITY_ID= 5
GROUP BY
YS.ACLN_ID,
YS.ACLN_NAME,
YS1.P,
YS1.OCCUR_TIME,
YS2.P,
YS2.OCCUR_TIME;
滴答滴答昵称 2014-11-25
  • 打赏
  • 举报
回复

[CLI Driver][DB2/NT] SQL0119N  在 SELECT 子句、HAVING 子句 或 ORDER BY 子句中指定的以 "OCCUR_TIME" 开始的表达式未在 GROUP BY 子句中指定,或者它在 SELECT 子句、HAVING 子句或 ORDER BY 子句中,具有列函数,但未指定 GROUP BY 子句。  SQ
这是什么情况啊??大神
  • 打赏
  • 举报
回复

SELECT
    YS.ACLN_ID,
    YS.ACLN_NAME,
    SUM(YS.Q)                 AS SUMQ,
    YS1.P             MAXP,
    YS1.OCCUR_TIME MAXTIME
FROM
    GRID.LINE_LOSS_DAY YS,
    (SELECT P,OCCUR_TIME FROM GRID.LINE_LOSS_DAY ORDER BY P DESC FETCH FIRST 1 ROWS ONLY) YS1
WHERE
    YS.CITY_ID = 3
AND YS.ACLN_ID = 240000075
GROUP BY
    YS.ACLN_ID,
    YS.ACLN_NAME,
    YS.P,
    YS.OCCUR_TIME
滴答滴答昵称 2014-11-25
  • 打赏
  • 举报
回复
感谢,感谢,感谢,感谢
bw555 2014-11-25
  • 打赏
  • 举报
回复
这是oracle区,给你写的是oracle的写法,帮你转到db2的板块去吧
滴答滴答昵称 2014-11-25
  • 打赏
  • 举报
回复
我的数据库是 DB2。 报错了

[IBM][CLI Driver][DB2/NT] SQL0104N  在 "X(YS.OCCUR_TIME) KEY" 后面找到异常标记 "("。预期标记可能包括:"FROM"。  SQLSTATE=42601
bw555 2014-11-25
  • 打赏
  • 举报
回复
MAX(YS.OCCUR_TIME) OVER() AS MAXTIME 改为 MAX(YS.OCCUR_TIME) keep(dense_rank last order by YS.P) AS MAXTIME
滴答滴答昵称 2014-11-25
  • 打赏
  • 举报
回复
有人没???快来人啊

5,889

社区成员

发帖
与我相关
我的任务
社区描述
IBM DB2 是美国IBM公司开发的一套关系型数据库管理系统,它主要的运行环境为UNIX(包括IBM自家的AIX)、Linux、IBM i(旧称OS/400)、z/OS,以及Windows服务器版本
社区管理员
  • DB2
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧