python - python sqlite3是否支持rank函数
问题描述
我想知道python
sqlite3
库是否支持 RANK() 函数。
当我通过在线浏览器执行查询时,Sqlite
它工作正常,但通过python
它失败。
File "xyz.py", line 509, in createData
conn.execute('SELECT RANK() OVER ( ORDER BY dateAndTime) FROM xyz;')
sqlite3.OperationalError: near "(": syntax error
提前致谢!
解决方案
我不知道您的 Python 脚本使用的 SQLite 版本是否支持RANK()
. 假设没有,您可以使用以下查询作为解决方法:
SELECT
(SELECT COUNT(*) + 1 FROM yourTable t2
WHERE t2.id < t1.id) rnk
FROM yourTable t1
ORDER BY
dateAndTime;
我们可以使用相关子查询来处理排名逻辑。请注意,对于DENSE_RANK
,解决方法可能并不那么容易。
这是一个演示,显示我的逻辑和RANK
行为方式相同。
演示
推荐阅读
- python - 如何使用 Jupyter notebook 保存输出图像?
- php - Wordpress Archive page completely blank
- r - change value in a column of a table based on a reference
- python - How to parse_dates for the Imported CSV File in google colab ?? the CSV file is imported from the Local drive
- excel - Insert formula into cell including strings and variables
- python - time.sleep() in Blender (Cycles) script
- google-cloud-platform - 有没有办法将另一个 ClientId 添加到 Google Cloud Identity Aware Proxy?
- c# - 尝试使用 ASP.net C# 更改 AD 用户时,调用错误的目标已引发异常
- puppet - Puppet:有条件重启服务
- python - 列表索引必须是整数或切片,而不是 str Django