SQL ROW_NUMBER 中的 ORDER BY 子句错误
SQL ORDER BY clause ERROR in the ROW_NUMBER
我想使用 ROW_NUMBER() 函数并获取第一个和最新的值。
我写下面的查询。但是我得到一个错误。
The ORDER BY clause is invalid in views, inline functions, derived tables, subqueries, and common table expressions, unless TOP, OFFSET or FOR XML is also specified.
帮我解决问题。 sql 查询下方
SELECT *
FROM(
SELECT OPP_ID,PRJ_ID,
ROW_NUMBER() OVER (PARTITION BY OPP_ID ORDER BY MAX(CREATION_DATE) DESC) AS RN
FROM OPPOR
GROUP BY OPP_ID,PRJ_ID
ORDER BY MAX(CREATION_DATE) DESC) OP
WHERE OP.RN = 1
row_number
函数可以自己进行聚合和排序,因此无需在子查询中使用 group by
或 order by
(order by
在如您所见的子查询)。有点不清楚你是想 partition by
opp_id 还是 opp_id 和 prj_id。但这应该是您正在寻找的:
SELECT *
FROM(
SELECT OPP_ID,PRJ_ID,
ROW_NUMBER() OVER (PARTITION BY OPP_ID ORDER BY CREATION_DATE DESC) AS RN
FROM OPPOR
) OP
WHERE OP.RN = 1
我想使用 ROW_NUMBER() 函数并获取第一个和最新的值。 我写下面的查询。但是我得到一个错误。
The ORDER BY clause is invalid in views, inline functions, derived tables, subqueries, and common table expressions, unless TOP, OFFSET or FOR XML is also specified.
帮我解决问题。 sql 查询下方
SELECT *
FROM(
SELECT OPP_ID,PRJ_ID,
ROW_NUMBER() OVER (PARTITION BY OPP_ID ORDER BY MAX(CREATION_DATE) DESC) AS RN
FROM OPPOR
GROUP BY OPP_ID,PRJ_ID
ORDER BY MAX(CREATION_DATE) DESC) OP
WHERE OP.RN = 1
row_number
函数可以自己进行聚合和排序,因此无需在子查询中使用 group by
或 order by
(order by
在如您所见的子查询)。有点不清楚你是想 partition by
opp_id 还是 opp_id 和 prj_id。但这应该是您正在寻找的:
SELECT *
FROM(
SELECT OPP_ID,PRJ_ID,
ROW_NUMBER() OVER (PARTITION BY OPP_ID ORDER BY CREATION_DATE DESC) AS RN
FROM OPPOR
) OP
WHERE OP.RN = 1