首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于列字符串选择和最后行降序过滤的sqlite查询

基于列字符串选择和最后行降序过滤的sqlite查询
EN

Stack Overflow用户
提问于 2022-04-07 09:08:15
回答 1查看 31关注 0票数 -1

我有一个数据库,tick_df,看起来像这样

代码语言:javascript
复制
       timestamp                             time        symbol     price
0  1649320867903 2022-04-07 08:41:07.903000+00:00  LUNA/USD:USD  108.3220
1  1649320867884 2022-04-07 08:41:07.884000+00:00   SOL/USD:USD  115.9125
2  1649320867321 2022-04-07 08:41:07.321000+00:00  LUNA/USD:USD  108.3220
3  1649320866243 2022-04-07 08:41:06.243000+00:00  LUNA/USD:USD  108.3300
4  1649320866225 2022-04-07 08:41:06.225000+00:00  AVAX/USD:USD   84.6590
5  1649320866144 2022-04-07 08:41:06.144000+00:00  AVAX/USD:USD   84.6640

我试图从一个符号(例如and /美元:美元)中按下降时间顺序选择所有列和最后2行。我尝试过的查询是

代码语言:javascript
复制
SELECT symbol FROM tick_df WHERE symbol LIKE AVAX% ORDER BY timestamp DESC LIMIT2

但这会返回一个错误

代码语言:javascript
复制
sqlalchemy.exc.OperationalError: (sqlite3.OperationalError) near "ORDER": syntax error

有人能指出我在这里做错了什么吗。

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-04-07 09:53:04

如果您查看错误消息,它会告诉您在ORDER BY附近存在语法错误,它会提示在该子句之前出现错误。

你可以从文献资料上读到

字符串常量是通过将字符串用单引号(')括起来形成的。

您应该将LIKE arg用单引号括起来,如下所示

代码语言:javascript
复制
SELECT symbol FROM tick_df WHERE symbol LIKE 'AVAX%' ORDER BY timestamp DESC LIMIT 2

另外,如果您想返回所有的列,那么应该是SELECT *,而不是SELECT symbol,因为后者只返回符号列。

最后一个正确的查询应该是

代码语言:javascript
复制
SELECT * FROM tick_df WHERE symbol LIKE 'AVAX%' ORDER BY timestamp DESC LIMIT 2
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71779307

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档