同值列统计
同值列统计
【问题】
表名: table
字段名: a b c d e f
数据: 1 2 1 1 2 3
+++++++++++++++++++++++++++++++++++++++++++++++++
求,表 table 中数据为“1”的个数有多少?
数据为“2”的个数有多少?
数据为“3”的个数有多少?
【回答】
这个需求已经很简明,思路就是对数据行进行列转换,然后按值统计个数。
用 sql 实现的话需要对每列嵌套查询,用 union 合并结果集成一列。当列数非常多的时候语句也要扩充。
而使用 SPL 实现可以无视列数多少,语句也简化许多:
A | |
---|---|
1 | =file(“D:/test.txt”).import@t() |
2 | =A1(1).array().group(~;count(~)) |
A1: 用一个 txt 文件作为源。导入 txt 文件数据,第一行作为列名。
A2:将记录 1 转换成数组,按值分组计数。
A1
A2