【问题标题】:Need help refining SQL analytics function syntax - missing left parenthesis需要帮助改进 SQL 分析函数语法 - 缺少左括号
【发布时间】:2015-02-01 09:16:07
【问题描述】:

这是我的查询,不断返回错误 00906。00000 - “缺少左括号” - 它表明它应该位于 from table b) b 行。不知道我在这里做错了什么,非常感谢任何帮助。我正在尝试选择地址相同但状态不同的记录。

select ADD.ID, ADD.Address, ADD.Unit, ADD.Status FROM
    (select b.*, min(ADD.status) OVER (partition by ADD.Address) as minstatus,
    max(ADD.status) OVER (partition by ADD.Address) as maxstatus
    from ADD b) b
     where minstatus <> maxstatus
       order by ADD.Address;

理想情况下,这将返回这些类型的记录:

ID  |  Address    |  Unit | Status
1   |555 Smith Rd | Apt A | Success
2   |555 Smith Rd | Apt B | Success
3   |555 Smith Rd | Apt C | Success
4   |555 Smith Rd | Apt D | Failure

【问题讨论】:

  • 表 ADD 未在 from 子句中选择
  • 当我把它放在那里时,它给我的错误是我的 SQL 命令没有在第二行正确结束
  • 我从中选择所有数据的表
  • @Panic 请确认 Sans 对您的回复的解释是正确的(将 table 替换为 ADD)。
  • 感谢 patrick,已编辑

标签: oracle oracle-sqldeveloper window-functions


【解决方案1】:

考虑add作为表名,正确的查询应该是-

SELECT c.id,
       c.address,
       c.unit,
       c.status
  FROM (SELECT b.*,
               MIN(b.status) over(PARTITION BY b.address) AS minstatus,
               MAX(b.status) over(PARTITION BY b.address) AS maxstatus
          FROM add b) c
 WHERE c.minstatus <> c.maxstatus
 ORDER BY c.address;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-04
    • 1970-01-01
    相关资源
    最近更新 更多