VCT 数据集

本站每一个页面,本质上都是对同一个文件的一种视图——而这就是那个文件。

数据表 10 见下方列表
最近更新 2026年10月15日 每日重建

一个永久链接,始终指向当前构建版本,可放心引用或写脚本调用。

一个单独的 DuckDB 数据库,收录 2021 年以来全部顶级 VCT 比赛——全部国际赛事(大师赛、冠军赛)以及晋级这些赛事的地区赛事。系列赛、地图、回合、选手逐图数据、击杀对位与残局/多杀事件,每日更新。免费使用,包括商业用途,不附带任何担保;由于数据来自公开的职业比赛页面,服务条款 就是你所同意内容的正式说明,而非一个现成的许可证标识符。欢迎回链到 vct-reference.com。

在信任某个数字之前,有一点提醒:覆盖率并不均匀——中国赛区只有 57.9% 的地图(998 张中的 578 张)记录了多杀/残局与击杀矩阵数据块,7.9% 记录了经济数据,而攻防分侧数据在所有赛区都有部分地图缺失。请以 maps.performance_available / economy_available 作为筛选条件,并用分侧统计除以按侧记录的分母,否则这些缺口会被读成零。完整数据见统计方法。

数据表

matches
每行代表一场系列赛——战队、赛事、赛段、赛制、结果、真实 UTC 时间戳。
maps
每行代表一张已进行的地图,包含回合比分及哪些可选数据块有记录。
rounds
每行代表一个回合——获胜方、进攻/防守方、结束方式,以及有记录时的经济快照。
player_map
每行代表一名选手在一张地图上的数据——评分、ACS、ADR、KAST、爆头率、K/D/A、开局对枪、多杀与残局,均按总计 / 进攻 / 防守分别拆分。
kill_matrix
每行代表一张地图上一对选手之间的击杀数据——谁击杀了谁,包含 Operator 击杀与首杀。
notables
每行代表一次多杀或残局事件,记录所在回合及涉及的对手。
players
每行代表一名选手——稳定 id、选手 ID、国籍。
teams
每行代表一支战队——稳定 id、名称、国籍。
stat_source
每行代表一位选手在一张地图上由逐回合击杀记录推算(而非公布)的数据块:多杀与残局(detail)或击杀矩阵(kill_matrix)。没有记录即为公布数据。
feed_fill_meta
每行代表一项推算数据,以及在两种来源都有的地图上与公布数据的一致率。

查询示例

两个示例都可以直接在 DuckDB 命令行(duckdb vct.duckdb)或 Python 包中运行。

生涯击杀排行榜

SELECT p.player_name, SUM(pm.kills_all)::INT AS kills
FROM player_map pm
JOIN players p USING (player_id)
JOIN matches m USING (match_id)
WHERE m.listing_status = 'Completed' AND m.is_showmatch = FALSE
GROUP BY 1 ORDER BY kills DESC LIMIT 25;

场均残局(按覆盖情况筛选)

SELECT p.player_name,
       ROUND(AVG(pm.clutch_1v1 + pm.clutch_1v2 + pm.clutch_1v3
               + pm.clutch_1v4 + pm.clutch_1v5), 3) AS per_map
FROM player_map pm
JOIN players p  USING (player_id)
JOIN maps    mp USING (match_id, game_id)
WHERE mp.performance_available   -- without this, unscraped maps count as zeros
GROUP BY 1 HAVING COUNT(*) >= 100
ORDER BY per_map DESC LIMIT 25;