ITPub博客

首页 > IT职业 > IT职场 > 结构化数据上的选出运算

结构化数据上的选出运算

原创 IT职场 作者:嘟嘟是只喵 时间:2020-11-14 21:18:08 0 删除 编辑

1. 选出符合条件的成员

【例 1】 分栏列出欧洲和非洲人口超 200 万的城市名称及人口(每栏按从多到少排序)。世界城市人口表部分数据如下:

Continent Country City Population
Africa Egypt Cairo 6789479
Asia China Shanghai 24240000
Europe Britain London 7285000
… … … …

期望结果如下:

Europe City Population Africa City Population
Moscow 8389200 Cairo 6789479
London 7285000 Kinshasa 5064000
St Petersburg 4694000 Alexandria 3328196
… … … …

【SPL 脚本】

A4的执行结果如下:

Europe City Population Africa City Population
Moscow 8389200 Cairo 6789479
London 7285000 Kinshasa 5064000
St Petersburg 4694000 Alexandria 3328196
… … … …

【例 2】 查询纽约研发部门员工的全名和收入。部分数据如下:

ID NAME SURNAME STATE DEPT SALARY
1 Rebecca Moore California R&D 7000
2 Ashley Wilson New York Finance 11000
3 Rachel Johnson New Mexico Sales 9000
4 Emily Smith Texas HR 7000
5 Ashley Smith Texas R&D 16000
… … … … … …

【SPL 脚本】

A4的执行结果如下:

FULLNAME SALARY
Matthew Johnson 6000
Lauren Thomas 12000
Brooke Williams 12000

【例 3】 查询各部门 30 岁以下和 50 岁以上的员工的人数。部分数据如下:

ID NAME BIRTHDAY STATE DEPT SALARY
1 Rebecca 1974/11/20 California R&D 7000
2 Ashley 1980/07/19 New York Finance 11000
3 Rachel 1970/12/17 New Mexico Sales 9000
4 Emily 1985/03/07 Texas HR 7000
5 Ashley 1975/05/13 Texas R&D 16000
… … … … … …

【SPL 脚本】

A4的执行结果如下:

DEPT Count
4 9
5 5
6 3
7 6
8 1

2. 查找最大值 / 最小值对应记录

【例 4】 根据成绩表,求一班数学成绩最低的学生 ID。部分数据如下:

CLASS STUDENTID SUBJECT SCORE
Class one 1 English 84
Class one 1 Math 77
Class one 1 PE 69
Class one 2 English 81
Class one 2 Math 80
… … … …

【SPL 脚本】

最小值所在记录不一定是唯一的,如果想返回所有记录,可以使用函数 A.minp() 的选项 @a :

A3的执行结果如下:

CLASS STUDENTID SUBJECT SCORE
Class one 5 Math 60
Class one 14 Math 60

A4的执行结果如下:

Member
5
14

【例 5】 根据奥运会奖牌榜统计表,求总成绩蝉联第一名届数最长的国家。部分数据如下:

Game Nation Gold Silver Copper
30 USA 46 29 29
30 China 38 27 23
30 UK 29 17 19
30 Russia 24 26 32
30 Korea 13 8 7
… … … … …

【SPL 脚本】

A5的执行结果如下:

Game Nation Gold Silver Copper
10 USA 41 32 30
9 USA 22 18 16
8 USA 45 27 27
7 USA 41 27 28

3. 分区段查找数据

有时候我们需要通过计算数值在区间中的序号,来获取在集合中的对应成员。比如根据考试成绩返回评价(优、良、中、差);根据家庭年收入返回家庭所处的资产等级(贫困、小康、中产、富裕等)。

【例 6】 根据成绩表,统计英语科目优秀、及格和不及格的人数。部分数据如下:

CLASS STUDENTID SUBJECT SCORE
Class one 1 English 84
Class one 1 Math 77
Class one 1 PE 69
Class one 2 English 81
Class one 2 Math 80
… … … …

【SPL 脚本】

A4的执行结果如下:

Assessment Count
excellent 6
fail 4
pass 18

4. 选出前 N 名 / 后 N 名

【例 7】 根据成绩表,求各班各科前两名的学生 ID。部分数据如下:

CLASS STUDENTID SUBJECT SCORE
Class one 1 English 84
Class one 1 Math 77
Class one 1 PE 69
Class one 2 English 81
Class one 2 Math 80
… … … …

【SPL 脚本】

A4的执行结果如下:

CLASS STUDENTID SUBJECT SCORE
Class one 4 English 96
Class one 9 English 93
Class one 13 Math 97
Class one 10 Math 97
… … … …

5. 根据主键值查找对应记录

根据主键值查找对应记录是很常见的操作,例如根据员工 ID 查找员工记录,根据订单 ID 查询订单详细信息等等。

【例 8】 根据相互关联的课程表和选课表,列出所有学生所选课程信息表,每个科目作为一列。课程表部分数据如下:

ID NAME TEACHERID
1 Environmental protection and … 5
2 Mental health of College Students 1
3 Computer language Matlab 8
… … …

选课表部分数据如下:

ID STUDENT_NAME COURSE
1 Rebecca 2,7
2 Ashley 1,8
3 Rachel 2,7,10
… … …

希望转换成如下表格:

ID STUDENT_NAME COURSE1 COURSE2 COURSE3 …
1 Rebecca Mental health of College Students Into Shakespeare
…
2 Ashley Environmental protection and … Modern economics
…
3 Rachel Mental health of College Students Into Shakespeare Music appreciation …
… … … … … …

【SPL 脚本】

A6的执行结果如下:

ID STUDENT_NAME COURSE1 COURSE2 COURSE3
1 Rebecca Mental health of College Students Into Shakespeare
2 Ashley Environmental protection and … Modern economics
3 Rachel Mental health of College Students Into Shakespeare Music appreciation
… … … … …


《 SPL CookBook》中还有更多相关计算示例。


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/31543054/viewspace-2734233/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2018-06-20

  • 博文量
    204
  • 访问量
    142960