NineData第2届数据库编程大赛:一条SQL秒杀100万张火车票
2024第二届数据库编程大赛正式开启!由 NineData 和云数据库技术社区主办,华为云、Doris等协办单位和媒体,共同举办了本次《数据库编程大赛》,诚邀各路数据库以及编程技术大牛踊跃参与!
本次大赛独具特色,设置题目为「只用一条SQL秒杀100万张火车票。面对春运即将来临,火车票一票难求的场景,需要参赛者设计一套SQL算法让乘客都都能顺利坐上火车回家过年。2023年数据库编程大赛回顾:数据库编程大赛:一条SQL计算扑克牌24点。
-
一等奖(1人):2024 华为最新款 WATCH D2 + 奖杯 -
二等奖(2人):高级行李箱1个 + 奖杯 -
三等奖(3人):华为蓝牙耳机1个 + 奖杯 -
阳光普照纪念奖(50人):充电宝1个
决赛答辩:2024.12.20
-
表 train 中存放了车次信息,包括车次编号(主键)、出发站、到达站、座位数(座位数是600,800,1200,1600四种之一);
-
表 train 在初赛中有 100 条记录,决赛 1000~10000 条记录;
-
表 passenger 保存了所有的乘客信息,包括乘客编号(主键)、出发站、到达站;
-
表 passenger 在初赛中有 10 万条记录,决赛 100万~1000万 条记录。
1. 普通挑战
完成普通挑战的前50名选手
即可获得参赛纪念奖品
返回的结果集示例如下:
完成普通挑战的选手,可以进一步完成进阶挑战
2. 进阶挑战
进阶挑战性能排名前8的选手
成绩进入决赛评选
1. 在普通挑战基础上,要求给每个乘客分配具体座位号,每列火车根据座位数有若干个车厢(编号1~N),每节车厢有100个座位,分20排,每排5个座位(A,B,C,E,F),注意:没有编号D的座位。
2. 每列火车允许发售10%的无座票,无座的乘客coach_number为空,seat_number=无座。
3. 火车票分配时需要优先分配有座的票,即仅当A地到B地的所有有座票分配完后,才分配无座车票。
8. 提交的 SQL 不能超过 10 KB大小。
备注 ( 选手需要验证 SQL 的逻辑正确性 ) :
5. 在 NineData 官网提交参赛 SQL;
严禁互相抄袭答案,如果发现有雷同代码,组委会将取消成绩。
通过数据库编程大赛入口报名,提交SQL答案的表单。参赛人员需要提交信息 1. 姓名 2. 邮箱 3. 联系电话 4. 数据库类型 5. 数据库版本 6. SQL 7. 算法说明。
数据库编程大赛群
欢迎加入,一起交流!
END
往期推荐
NineData 采用领先的云原生与 AIGC 技术,为云与 AI 时代的架构设计提供了智能数据管理平台。作为业界首个支持跨云和本地 IDC 无缝打通的平台,能够帮助客户轻松完成数据上云、跨云数据实时传输、ETL、数据备份、企业级智能 SQL 开发、数据库研发规范、生产变更以及敏感数据管理等功能,从而让客户的数据使用更加安全高效。