经常做这种查询?
- 哪些股票在这个月内连续上涨过五天?
- 每个地区的收入中位数是多少?
- 业绩最好的那三个月的增长额有多少?
- 每门功课都在前10名的学生?
- 各个销售员到几月份的销售额就到50万了?
1 | SELECT max(连续日数)-1 FROM |
2 | (SELECT count(*) 连续日数 FROM |
3 | (SELECT SUM(涨跌标志) OVER ( ORDER BY 交易日) 不涨日数 FROM |
4 | ( SELECT 交易日, |
5 | CASE WHEN 收盘价>LAG(收盘价) OVER( ORDER BY 交易日 THEN 0 ELSE 1 END 涨跌标志 |
6 | FROM 股票 )) |
7 | GROUP BY 不涨日数) |
A | |
---|---|
1 | =orcl.query("select * from 股票 order by 交易日") |
2 | =A1.group@i(收盘价<收盘价[-1]).max(~.len()) |
A | |
---|---|
1 | =销售表.sort(月份) |
2 | =A1.derive(销售额{-1,1}.avg()):移动平均) |
A | |
---|---|
1 | =股票.sort(交易日) |
2 | =A1.group(代码) |
3 | =A2.select((a=0,~.pselect(a=if(收盘价>收盘价[-1],a+1,0):3))>0) |
4 | =A3.(代码) |
ID | ORG_NAME | PARENT_ID |
---|---|---|
1 | Head Office | 0 |
2 | Beijing Branch Office | 1 |
3 | Shanghai Branch Office | 1 |
4 | Chengdu Branch Office | 1 |
5 | Beijing R&D Center | 2 |
...... | ...... | ...... |
A | B | |
---|---|---|
1 | =connect("db") | /连接数据库 |
2 | =A1.query("select * from Organization") | /查询组织结构表 |
3 | >A2.switch(PARENT_ID,A2:ID) | /将PARENT_ID外键映射到该ID所在的记录,实现自连接。 |
4 | =A2.select@1(ORG_NAME=="Beijing Branch Office") | /选出北京分公司所在记录 |
5 | =A2.new(ID,ORG_NAME,~.prior(PARENT_ID,A4) :PARENT) | /创建由序号、部门名称和上级组成的新表。其中上级是通过prior函数递归查找北京分公司以下的记录得出。 |
6 | =A5.select(PARENT!=null) | /选出上级存在的成员,不存在的说明不在北京分公司下属。 |
7 | =A6.run(PARENT=PARENT.(PARENT_ID.ORG_NAME).concat@c()) | /将上级字段中所有的上级名称拼在一起,用逗号分隔。 |