python - SQL 计数器循环
问题描述
来自 Python/R 但对 SQL 不熟悉...
有没有办法在 SQL 循环中使用“计数器”?
例如,如何在 SQL 中模仿以下简单的 Python for 循环:
counter = 7
For i in range(1,conter+1):
some_function_that_takes_i_as_argument
counter +=1
我正在尝试在 SQL 查询中替换数值“i”(在一个范围内)!
解决方案
使用 SQL,您需要开发一种不同的思维方式 - 不是程序性的,而是您希望获得的集合是什么?从您的语句 SELECT * FROM tableA WHERE date > SYSDATE - i"。在他的情况下,您似乎只需要最近 8 天(今天和 7 天前)的数据。使用 SQL,这只是一个语句(不需要循环):
select *
from table_a
where date >= trunc(sysdate – 7)
order by date desc;
注意:以上用户“日期”作为列名。这是一个极差的选择,因为日期 和 Oracle 数据类型以及Oracle 和 SQL 标准保留字。
该查询使用该trunc
函数,因为 Oracle日期数据类型始终包含时间。
推荐阅读
- node.js - Excel 中 CSV 文件的特殊字符问题,Sheetjs 为 utf8 CSV 文件添加 BOM
- javascript - Google Apps Script PropertiesService - 因不可靠的执行记录和编辑器调试而感到困惑
- azure-logic-apps - 逻辑应用部署 - 找不到集成帐户:工作流必须与集成帐户关联才能使用工作流运行操作
- wagtail - 如何在 Wagtail 中检索属于具有收藏权限的组的用户的图像?
- python - 使用 django 显示 404 错误处理页面
- node.js - 如何在 React 中使用 nodejs 模块
- django - Elasticsearch + django:未知的 mimetype,无法反序列化:text/html
- laravel - Laravel 7(带有分形)在使用 withCount 方法时不包括关系计数
- c++ - 检查整数数组是否形成回文?
- react-admin - React-admin - 在渲染不同的组件(`SelectInput`)时无法更新组件(`xxx`)