经常做这种查询?
- 哪些股票在这个月内连续上涨过五天?
- 每个地区的收入中位数是多少?
- 业绩最好的那三个月的增长额有多少?
- 每门功课都在前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()) | /将上级字段中所有的上级名称拼在一起,用逗号分隔。 |