答案 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;