表的结构为
create table t_hr_ship
(shipment_id int,
shipper_id int,
source_port varchar(20),
destination_port varchar(20));
问题是:找到最繁忙的3条线路,并为这些最繁忙的线路打印两个端口。对于两批货物,一个是从A到B,另一个是从B到A,它们在同一行(在相同的两个目的地之间),因此应在该行中将其装运加在一起。
我正在考虑创建一个新列“行”,该列将source_port和destination_port串联在一起,但是不知道如何切换源,目的是同一行。
答案 0 :(得分:0)
如果端口号不是按升序排列的,则可以使用libutils.{so|a}
来切换端口。然后按一对有序的帖子分组,按//DONT WORK
//makecontext(&context.uctx_source,(void*)Write,1,*length);
//makecontext(&context.uctx_target,(void*)Read,0);
mycoroutines_create(&context.uctx_source,(void *)Write,length);
mycoroutines_create(&context.uctx_target,(void *)Read,length);
降序排列结果,并使用int mycoroutines_create(ucontext_t *coroutine,void (body)(void *),void *arg)
{
makecontext(coroutine,(void *)body,1,(int *)arg);
if(errno != 0){
perror("Error reported by makecontext()");
return -1; }
else {
perror("not enough storage for stack");
abort();
}
return 0;
}
仅获得前3名。
CASE