同值列统计

同值列统计

【问题】

表名: table

字段名:  a    b    c   d   e   f

数据:  1    2    1   1   2   3
+++++++++++++++++++++++++++++++++++++++++++++++++

求,表 table 中数据为“1”的个数有多少?
数据为“2”的个数有多少?
数据为“3”的个数有多少?

【回答】

这个需求已经很简明,思路就是对数据行进行列转换,然后按值统计个数。

用 sql 实现的话需要对每列嵌套查询,用 union 合并结果集成一列。当列数非常多的时候语句也要扩充。

而使用 SPL 实现可以无视列数多少,语句也简化许多:

imagepng

A
1 =file(“D:/test.txt”).import@t()
2 =A1(1).array().group(~;count(~))

A1: 用一个 txt 文件作为源。导入 txt 文件数据,第一行作为列名。

A2:将记录 1 转换成数组,按值分组计数。

A1

imagepng

A2

imagepng