空座位

阅读(523) 标签: 合并相同, file, import, group, count, select,

l  问题

有一个能容纳1000人的餐馆,他们将座位按顺序编号并记录在了数据库表中,每个客人就坐之后,服务员就会在座位表中标记一下,当客人离开后,就删除这个标记。某一时刻下的该表如下:

由于经常有客人是多位一起,需要坐到连续的座位上,为方便寻找这种连续的座位,餐馆需要一个同步的“空闲座位片区表”,用于记录当前的空闲座位有哪些区段,以及每个区段的位置。

请帮助餐馆的管理员,由上面的座位表生成空闲座位片区表。

l  思路

大致思路:合并相同的内容,集算器中的分组函数可以解决,而只合并相邻的相同内容,group函数带有不排序参数可选,不排序分组就可以完美的解决这个问题。

l  代码

 

A

 

1

=file("C:\\txt\\Seatings.txt").import@t()

座位表

2

=A1.group@o(Availability;~.count():NumberOfSeats,~.SeatNo:StartingSeatNo)

按是否有客人进行不排序分组

3

=A2.select(Availability)

选出空闲的座位片区

 

l  结果