sql - 如何从一张表中的 2 列计算到新表中?PostgreSQL
问题描述
我有一张名为“postgres”的大表,它有 3 列(日期、打开、关闭)和 65000 行。
postgres
Date | Open | Close
----------------------------------------------------------
2019-01-01 | 1.03212 | 1.03243
2019-01-01 | 1.06212 | 1.09243
2019-01-02 | 1.02212 | 1.08243
2019-01-04 | 1.08212 | 1.07243
+65000 rows
我需要计算一下。对表中的所有行都是这样(case when Open < Close then 1 else 0 end)
的,接下来我需要将答案放入新表“Zad2”中。它需要看起来:
Zad2
Type | Amount
-------------------------------
positive | 23232
negative | 11433
equal | 322
谢谢帮助,对不起我的英语)
解决方案
您可以使用case
表达式:
select (case when open < close then 'increasing'
when open > close then 'decreasing'
when open = close then 'equal'
end) as grp, count(*)
from t
group by grp;
我不确定“积极”和“消极”应该是什么意思,所以我贴上了对我有意义的标签。
insert
您可以使用(如果表已存在)或create table as
(如果表不存在)将结果放入新表中。
推荐阅读
- python - 在 Windows 提示符下运行时出现 Python SyntaxError
- python - Python函数及操作
- aem - 在 Slightly 的条件元素中包装标记?
- c# - 从打开的 DataReader 中返回一个新对象 - 好不好?
- java - 在 Java 中使用 Hibernate 加入嵌入式 ID 列
- python - libvips / pyvips 访问多通道 tiff (OME-Tiff) 的一小部分
- python - 在函数 2 中使用函数 1 创建的 pandas 数据框?
- visual-studio-code - VSCode + 远程 WSL 某些功能不起作用
- python - 如何使用 python 从网站上抓取段落?
- java - 多态性实现对子字段的强制通用更改