SQL 语句优化 SELECT t.* FROM (SELECT * ,ROW_NUMBER() OVER (PARTITION BY S_INFO_WINDCODE ORDER BY TRADE_DT DESC) AS rn FROM wind.CHINACLOSEDFUNDEODPRICE WHERE TRADE_DT > 20230101) t WHERE t.rn = 1; 提示[42000][923] ORA-00923: 未找到要求的 FROM 关键字
时间: 2024-03-28 20:42:34 浏览: 103
sqlserver巧用row_number和partition by分组取top数据
5星 · 资源好评率100%
这是一个 Oracle 数据库的错误提示,提示中指出未找到要求的 FROM 关键字。可以检查一下 SQL 语句中的语法是否正确,比如是否缺少了必要的关键字或者符号。
针对这条 SQL 语句,可以尝试将子查询的结果集命名为一个表,然后在外层查询中使用该表。具体的 SQL 语句如下所示:
```
SELECT t.*
FROM
(SELECT *, ROW_NUMBER() OVER (PARTITION BY S_INFO_WINDCODE ORDER BY TRADE_DT DESC) AS rn
FROM wind.CHINACLOSEDFUNDEODPRICE
WHERE TRADE_DT > 20230101) AS t
WHERE t.rn = 1;
```
这样写可以让 SQL 语句更加清晰易懂,并且也可以避免一些语法错误。另外,如果数据量比较大,可以考虑对表添加索引来提高查询性能。
阅读全文