1.17 分组:筛选时用到分组汇总值
有分类产品销售额汇总表如下,请找出销售额大于所在分类平均销售额的产品:
| CategoryName | ProductName | ProductSales |
|---|---|---|
| Beverages | C?te de Blaye | 46563.09 |
| Beverages | Chai | 4887 |
| Beverages | Chang | 7038.55 |
| Beverages | Chartreuse verte | 4475.7 |
| Beverages | Guaraná Fantástica | 1553.63 |
| … | … | … |
脚本:
| A | |
|---|---|
| 1 | =connect(“db”) |
| 2 | =A1.query@x(“select * from ProductSales”) |
| 3 | =A2.group(CategoryName) |
| 4 | =A3.((a=~.avg(ProductSales),~.select(ProductSales>a))).conj() |
A1 连接数据库
A2 读取分类产品销售额汇总表
A3 按产品分类分组,并产生分组子集
A4 对着分组子集循环计算平均销售额赋给临时变量 a,然后再筛选出销售额大于 a 的记录,最后合并
运行结果:
| CategoryName | ProductName | ProductSales |
|---|---|---|
| Beverages | C?te de Blaye | 46563.09 |
| Beverages | Ipoh Coffee | 11069.9 |
| Condiments | Chef Anton’s Cajun Seasoning | 5214.88 |
| Condiments | Gula Malacca | 6543.45 |
| Condiments | Louisiana Fiery Hot Pepper Sauce | 9331.08 |
| … | … | … |
