Oracle-00904异常:无效的标识符

时间:2018-08-15 10:27:07

标签: sql oracle

编辑::使用Thorsten Kettner提供的新查询解决了我原来的问题。

2 个答案:

答案 0 :(得分:0)

在您的第一个查询中

max(DISTINCT AGENT_ID)

DISTINCT是多余的,因为MAX(DISTINCT value)MAX(ALL value)当然是相同的,但是最重要的是,该表达式没有明确的名称! (Oracle将即时创建一个;可能类似于MAX_DISTINCT_AGENT_ID)。做这个

max(AGENT_ID) as AGENT_ID

以便以后使用该名称访问它。

答案 1 :(得分:0)

这不是您要问的直接答案,但也许您想问其他问题:-)

如果您想要的只是每个座席的最新条目,请使用ROW_NUMBER对每个座席从最新到最旧的列进行排名,并仅将这些行的排名保持为“最新”:

SELECT *
FROM
(
  SELECT
    aa.*,
    ROW_NUMBER() OVER (PARTITION BY agent_id ORDER BY allocation_start DESC) AS rn
  FROM ks_drift.v_agent_allocation aa
)
WHERE rn = 1;