回到顶部

NineData第二届数据库编程大赛:一条SQL秒杀100万张火车票

2024年12月20日 9:00 ~ 2024年12月20日 18:00

收起

活动票种
  • 免费

    • 免费票
 已结束 (免费票)
付费活动,请选择票种
展开活动详情

活动内容收起

2024第二届数据库编程大赛正式开启!由 NineData 和云数据库技术社区主办,华为云、Doris等协办单位和媒体,共同举办了本次《数据库编程大赛》,诚邀各路数据库以及编程技术大牛踊跃参与!

图片

本次大赛独具特色,设置题目为「只用一条SQL秒杀100万张火车票。面对春运即将来临,火车票一票难求的场景,需要参赛者设计一套SQL算法让乘客都都能顺利坐上火车回家过年。2023年数据库编程大赛回顾数据库编程大赛:一条SQL计算扑克牌24点

01

大赛奖品
本次数据库编程大赛的奖项安排:一等奖(1人)、二等奖(2人)、三等奖(3人)、阳光普照纪念奖(50人)。
  • 一等奖(1人):2024 华为最新款 WATCH D2 + 奖杯
  • 二等奖(2人):高级行李箱1个 + 奖杯
  • 三等奖(3人):华为蓝牙耳机1个 + 奖杯
  • 阳光普照纪念奖(50人):充电宝1个

图片

数据库编程大赛奖品,欢迎来挑战!

02

比赛玩法
参赛时间
开赛提交2024.12.5 ~ 2024.12.16 22:00 截止
测试评分2024.12.172024.12.19

决赛答辩2024.12.20

图片
比赛题目
春运的火车票总是一票难求,现在假设你掌握了火车的车次信息,并且收集到了所有乘客的起始站和终点站需求,需要你用一条SQL为每个乘客分配火车票车次和座位,让乘客都尽可能坐上火车回家。
详细描述
赛题中包含两张表,分别是车次信息(train)表和乘客信息(passenger)表。其中:
  • 表 train 中存放了车次信息,包括车次编号(主键)、出发站、到达站、座位数(座位数是600,800,1200,1600四种之一);

  • 表 train 在初赛中有 100 条记录,决赛 1000~10000 条记录;

  • 表 passenger 保存了所有的乘客信息,包括乘客编号(主键)、出发站、到达站;

  • 表 passenger 在初赛中有 10 万条记录,决赛 100万~1000万 条记录。

图片

1. 普通挑战

完成普通挑战的前50名选手

即可获得参赛纪念奖品


要求选手用一条SQL实现乘客分配车次信息,具体要求:
1. 只能用一条SQL,可以使用数据库内置函数,不能使用自定义函数和存储过程;
2. 每个乘客最多只能分配一个车次;
3. 每列火车分配的乘客数不能超过座位数;
4. 不能出现火车有空余座位,但对应起始站和终点站的乘客未分配票;
5. 如果没有可分配的车次,train_id返回空值(null);
6. 返回结果按passenger_id字符顺序排序。

返回的结果集示例如下:

图片


图片


完成普通挑战的选手,可以进一步完成进阶挑战

(注:提交进阶挑战SQL前必须先提交普通挑战的SQL)

2. 进阶挑战

进阶挑战性能排名前8的选手

成绩进入决赛评选


1. 在普通挑战基础上,要求给每个乘客分配具体座位号,每列火车根据座位数有若干个车厢(编号1~N),每节车厢有100个座位,分20排,每排5个座位(A,B,C,E,F),注意:没有编号D的座位。

2. 每列火车允许发售10%的无座票,无座的乘客coach_number为空,seat_number=无座。

3. 火车票分配时需要优先分配有座的票,即仅当A地到B地的所有有座票分配完后,才分配无座车票。


图片

图片


测试数据与验证流程
1. 只能使用一条 SQL ,可以使用数据库内置函数,不能使用自定义函数和存储过程;
2. 一位乘客最多只能分配 1 个车次的车厢座位;
3. 不能出现火车有空余座位,对于起始站和终点站乘客未分配票;
4. 普通挑战火车不卖无座票,进阶挑战火车可以售卖 10% 的无座票;
5. 不能出现在 train 以外的火车信息;
6. 不能出现在 passenger 以外的乘客信息;
7. 每个选手最多提交 3 次比赛代码;

8. 提交的 SQL 不能超过 10 KB大小。

备注 ( 选手需要验证 SQL 的逻辑正确性 ) :

1. 进入 NineData 官网(http://www.ninedata.cloud),注册并登录 NineData 控制台;
2. 打开 SQL 窗口,申请一个 mysql demo 数据库;
3. 查询 demo 表数据, game_ticket.train, game_ticket.passenger;
4. 在 SQL 窗口编写参赛 SQL 并验证逻辑;

5. 在 NineData 官网提交参赛 SQL;

严禁互相抄袭答案,如果发现有雷同代码,组委会将取消成绩。


03

参赛提交
通过数据库编程大赛入口报名,提交SQL答案的表单。参赛人员需要提交信息 1. 姓名 2. 邮箱 3. 联系电话 4. 数据库类型 5. 数据库版本 6. SQL 7. 算法说明。
方式一:官网提交
登录 NineData 官网,参赛地址:https://www.ninedata.cloud/sql_train2024
方式二:公众号后台
NineData 公众号后台回复「数据库编程」,立即获得参赛入口链接。
方式三:数据库编程大赛群
扫码进群后,自动获得参赛活动地址和提交答案入口。

图片

图片

图片

数据库编程大赛群

  欢迎加入,一起交流!

图片



04

评选规则
本次大赛的评委,均是数据库领域的领军人物,通过主办方NineData的邀请,组成2024年第二届《数据库SQL编程大赛》强大的评审嘉宾团。
图片
《第二届数据库编程大赛》评审嘉宾团
本次大赛主要会从以下4个方面评审,一定要注意下面的评审规则!
正确性
由组委会验证,只有结果正确才会进入评委评选流程。
性能
总得分占比 50% ,由组委会给出测试成绩(第一名 50 分,第二名 45 分,第三名 42 分,第四名 40 分,第 5 名 39 分,后面每排名下降一名减少1分,以此类推,最低得 20 分)
代码创新性
总得分占比 30% ,由评委打分( 0~30 分)
代码易读性
总得分占比 20% ,由评委打分( 0~20 分)

05

比赛行程
本次大赛提交答题的截止时间:2024年12月16日22:00点
图片
活动截止时间


举报活动

活动标签

最近参与

  • over_drive
    收藏

    (1天前)

  • 微信用户
    报名

    (6天前)

  • 东东东泽寅麒麟
    报名

    (13天前)

  • 东东东泽寅麒麟
    收藏

    (13天前)

报名须知

1、本活动具体服务及内容由主办方【杜清】提供,活动行仅提供票务技术支持,请仔细阅读活动内容后参与。

2、如在活动参与过程中遇到问题或纠纷,双方应友好协商沟通,也可联络活动行进行协助。

您还可能感兴趣

您有任何问题,在这里提问!

为营造良好网络环境,评价信息将在审核通过后显示,请规范用语。

全部讨论

还木有人评论,赶快抢个沙发!

微信扫一扫

分享此活动到朋友圈

活动日历   12月
25 26 27 28 29 30 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

免费发布