sql - 在 postgres 中,如何将奇数索引的值与偶数索引的值相除?
问题描述
假设我有一张桌子
ind | val
----+----
1 | 0.11
2 | 0.12
3 | 0.13
4 | 0.14
5 | 0.15
6 | 0.16
我想将偶数元素除以奇数元素。所以我想返回类似的东西
ind2 | val2
----+----
1 | 0.12/0.11
2 | 0.14/0.13
3 | 0.16/0.15
我可以运行什么 SQL 查询来输出所需的格式?
感谢您的任何帮助。
更多关于我的情况。我真的从一个数组表开始。对于选定的行,我想获取数组并将数组的偶数元素除以数组的奇数元素。
当我想将奇数和偶数元素相加时,我做了类似的事情
SELECT
"timestamp" AS "time",
((ind-1)-(ind-1)%2)/2 AS frequency,
20*LOG(SQRT(SUM(val*val))) as vna_data
FROM
v_recent_vna_reflection,
UNNEST(value_cal) WITH ORDINALITY a(val,ind)
WHERE
id = (SELECT MAX(id) FROM v_recent_vna_reflection)
GROUP BY timestamp, frequency
但是除法不是一个有意义的聚合函数。
解决方案
您可以对您询问的有关行的问题使用聚合。你可能想问另一个关于数组的问题。
select ceiling(id / 2.0) as id,
max(val) filter (where id % 2 = 0) / max(val) filter (where id % 2 = 1) as ratio
from t
group by ceiling(id / 2.0);
推荐阅读
- php - PHP使用password_verify和password_hash验证密码
- r - 如何删除一行和一列
- java - 如何从远程机器访问 apache mina ssh 服务器?
- python - 计算两个相邻城市之间的距离
- opencv - OpenCV 4.0:类“cv::FastFeatureDetector”没有成员“DetectorType”
- javascript - setInterval 计数器问题
- sql - Notepad ++替换整个字符串,但其中的整数除外
- python - 将“for循环”更改为“while循环”
- python - python子进程不工作。它没有取代可变输出
- python-2.7 - 如何从同一应用项目中的 python2.7 微服务访问谷歌应用引擎 ndb 数据存储