sql - SQL COUNT 列中的所有行
问题描述
我需要计算所有行并将其写入 ORACLE SQL 中的列。它应该看起来像这样(左边是,右边是它应该看起来的样子):
|A|B|C|D| |A|COUNT_A|B|COUNT_B|C|COUNT_C|D|COUNT_D|
- - - - - ------- - ------- - ------- - -------
|1|2|3| | ==> |1| 2 |2| 3 |3| 3 | | 0 |
|1|3|4| | ==> |1| 2 |3| 3 |4| 3 | | 0 |
| |3|4| | | | 2 |3| 3 |4| 3 | | 0 |
我已经尝试过诸如 COUNT(*) OVER (PARTITION BY)、UNION 之类的一些东西
先感谢您。
解决方案
您可以使用窗口函数:
select a, count(a) over () as cnt_a,
b, count(b) over () as cnt_b,
c, count(c) over () as cnt_c,
d, count(d) over () as cnt_d
from t;
推荐阅读
- python - 如何在关系中设置默认值
- java - Rest Api 设计:资源原型、存储和控制器
- database - 如果可用,Oracle 使用 n-2 数据更新 n-1 列,否则为“新”
- pandas - Spyder 中没有可用的文档错误
- c++ - 删除[i]数组和删除数组[i]的区别
- verilog - SystemVerilog 并发断言序列动态长度
- git - CentOS 7 的带有 git-credential-libsecret 二进制文件的存储库?
- window - 通过命令提示符或 powershall 在 Windows 10 中更改 Wi-Fi 软件的无线电状态
- visual-studio - Visual Studio 2019 - Gold (Olive) 中的函数语法亮点
- amazon-web-services - 尝试使用 authorized_key 模块允许一台远程服务器登录到其他 3 台远程服务器