问题描述
嗨,
我有一个宽的表,有200奇数列。要求是旋转列并显示每列中的唯一值和空白计数
结果应采用如下所示的枢轴格式。
你能帮忙吗?
谢谢
我有一个宽的表,有200奇数列。要求是旋转列并显示每列中的唯一值和空白计数
CREATE TABLE example( c1 VARCHAR(10), c2 VARCHAR(10), c3 VARCHAR(10) ); / INSERT INTO example VALUES('abc', '123', 'speed'); INSERT INTO example VALUES('cat', 'crazy', 'no'); INSERT INTO example VALUES('dog', 'yes', 'no'); INSERT INTO example VALUES('dog', 'row', 'no'); INSERT INTO example VALUES(null,null,'no'); commit; /复制
结果应采用如下所示的枢轴格式。
unique Countofblank ----------------------- c1 4 1 c2 5 1 c3 2 0复制
你能帮忙吗?
谢谢
专家解答
而不是枢轴,它听起来像你想要:
-展开列
-按这些分组以获得计数
注意计数 (distinct) 排除null值。从您的输出看来,您希望将这些包括在您的独特计数中。所以你需要将NULL映射到一些 “不可能” 的值 (例如字符串 “NULL”)。
要获取null,您还需要将它们映射到非null值。以及非null为null :)
这给出了:
-展开列
-按这些分组以获得计数
注意计数 (distinct) 排除null值。从您的输出看来,您希望将这些包括在您的独特计数中。所以你需要将NULL映射到一些 “不可能” 的值 (例如字符串 “NULL”)。
要获取null,您还需要将它们映射到非null值。以及非null为null :)
这给出了:
CREATE TABLE example( c1 VARCHAR(10), c2 VARCHAR(10), c3 VARCHAR(10) ); / INSERT INTO example VALUES('abc', '123', 'speed'); INSERT INTO example VALUES('cat', 'crazy', 'no'); INSERT INTO example VALUES('dog', 'yes', 'no'); INSERT INTO example VALUES('dog', 'row', 'no'); INSERT INTO example VALUES(null,null,'no'); commit; / with rws as ( select * from example unpivot include nulls ( val for col in ( c1, c2, c3 ) ) ) select col, count ( distinct val ) distinct_vals, count ( distinct case when val is null then 'NULL' else val end ) distinct_vals_with_null, count ( case when val is null then 1 end ) nulls from rws group by col; CO DISTINCT_VALS DISTINCT_VALS_WITH_NULL NULLS -- ------------- ----------------------- ---------- C1 3 4 1 C2 4 5 1 C3 2 2 0复制
文章转载自ASKTOM,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
评论
相关阅读
Oracle DataGuard高可用性解决方案详解
孙莹
578次阅读
2025-03-26 23:27:33
Oracle RAC 一键安装翻车?手把手教你如何排错!
Lucifer三思而后行
537次阅读
2025-04-15 17:24:06
【纯干货】Oracle 19C RU 19.27 发布,如何快速升级和安装?
Lucifer三思而后行
440次阅读
2025-04-18 14:18:38
XTTS跨版本迁移升级方案(11g to 19c RAC for Linux)
zwtian
432次阅读
2025-04-08 09:12:48
墨天轮个人数说知识点合集
JiekeXu
431次阅读
2025-04-01 15:56:03
【ORACLE】记录一些ORACLE的merge into语句的BUG
DarkAthena
430次阅读
2025-04-22 00:20:37
Oracle SQL 执行计划分析与优化指南
Digital Observer
430次阅读
2025-04-01 11:08:44
【ORACLE】你以为的真的是你以为的么?--ORA-38104: Columns referenced in the ON Clause cannot be updated
DarkAthena
408次阅读
2025-04-22 00:13:51
Oracle数据库一键巡检并生成HTML结果,免费脚本速来下载!
陈举超
395次阅读
2025-04-20 10:07:02
Oracle 19c RAC更换IP实战,运维必看!
szrsu
367次阅读
2025-04-08 23:57:08