sql - 使用 INTO 分配给 Oracle 中的变量
问题描述
作为背景。我正在尝试将按函数分组的结果分配给变量。有了这个,我想做类似的事情
while count > n/2
BEGIN
UPDATE table1
set exclude_reason = ....
......
n 是来自 groupby 函数的记录数。
我只是想基本上将其用作重复检查,但对于其他情况,我遇到了许多重复项,标准的重复检查可能会删除相同的 9/10 记录;我只想摆脱其中的一半。
我研究了使用 INTO 这似乎是最标准的方法。这是解决此类问题的最佳方法吗?
示例数据:
group by 将是 groupby id,amount,price,type
从那里我想迭代并更新按功能分组的一半结果。
解决方案
如果您真的想使用 INTO,在我看来,您必须按照以下方式做一些事情
FOR aRow IN (SELECT DISTINCT ID, AMOUNT, PRICE, TYPE
FROM SOME_TABLE)
LOOP
SELECT COUNT(*)
INTO n
FROM SOME_TABLE
WHERE ID = aRow.ID AND
AMOUNT = aRow.AMOUNT AND
PRICE = aRow.PRICE AND
TYPE = aRow.PRICE;
-- do whatever you want with n here
END LOOP;
但我不明白你为什么要这样做,除非这里有一些外部要求INTO
。你最好做
FOR aRow IN (SELECT ID, AMOUNT, PRICE, TYPE, COUNT(*) AS N
FROM SOME_TABLE
GROUP BY ID, AMOUNT, PRICE, TYPE)
LOOP
-- do whatever you want with aRow.N here
END LOOP;
推荐阅读
- python-3.x - 来自 AWS 控制台的 AWS 反向迁移设置本地主机
- c - 语法 C,这是什么意思
- c - 而函数C编程
- postgresql - 无法使用托管在 kubernetes 中的 Pyspark 从 PSQL 读取
- javascript - 除了 toString() 之外,还有其他方法可以查看函数的主体吗
- r - 在不使用循环的情况下创建所需的小标题
- reactjs - Can't store navigator.geolocation data in useffect, with a usestate
- php - 适用于 AWS S3 的 PHP 开发工具包使用 ARN 存储桶进行身份验证
- html - 为什么边距折叠不起作用?我错过了什么?
- android - 错误:无法解析 C:\Users\aNTA\AndroidStudioProjects\breaking\app\src\main\AndroidManifest.xml 中的 XML