本文目录导读:

在PHP项目中统计“进攻三区传球成功率”,需要先明确几个概念,因为不同数据源和统计口径会有差异,下面给你一个可落地的实现思路和代码示例。
概念定义
进攻三区(Attacking Third):通常指球场纵向划分为三段后,靠近对方球门的那 1/3 区域,若以球场长度 105m 计,进攻三区大约是从对方半场距底线 35m 的区域(即 x > 70m,x 从本方底线起算)。
传球成功率 = 成功传球次数 / 总传球次数 × 100%
进攻三区传球:传球起点位于进攻三区的传球(有些口径按传球终点算,需与数据方确认)。
数据表设计
假设你有一张传球事件表 pass_events:
CREATE TABLE pass_events (
id INT PRIMARY KEY AUTO_INCREMENT,
match_id INT NOT NULL,
player_id INT NOT NULL,
team_id INT NOT NULL,
start_x DECIMAL(6,2) NOT NULL, -- 传球起点x坐标(0-105)
start_y DECIMAL(6,2) NOT NULL, -- 传球起点y坐标(0-68)
end_x DECIMAL(6,2) NOT NULL,
end_y DECIMAL(6,2) NOT NULL,
is_success TINYINT(1) NOT NULL, -- 1成功 0失败
created_at DATETIME
);
SQL 统计
SELECT
team_id,
COUNT(*) AS total_passes,
SUM(is_success) AS success_passes,
ROUND(SUM(is_success) / COUNT(*) * 100, 2) AS success_rate
FROM pass_events
WHERE match_id = ?
AND start_x > 70 -- 进攻三区:以105m场长、x从本方底线起算
GROUP BY team_id;
PHP 实现示例(PDO)
<?php
function getAttackingThirdPassStats(PDO $pdo, int $matchId, float $pitchLength = 105.0): array
{
$thirdLine = $pitchLength * 2 / 3; // 70m
$sql = "SELECT
team_id,
COUNT(*) AS total_passes,
SUM(is_success) AS success_passes,
ROUND(SUM(is_success) / COUNT(*) * 100, 2) AS success_rate
FROM pass_events
WHERE match_id = :match_id
AND start_x > :third_line
GROUP BY team_id";
$stmt = $pdo->prepare($sql);
$stmt->execute([
':match_id' => $matchId,
':third_line' => $thirdLine,
]);
return $stmt->fetchAll(PDO::FETCH_ASSOC);
}
// 使用
$pdo = new PDO('mysql:host=localhost;dbname=football;charset=utf8mb4', 'user', 'pass');
$stats = getAttackingThirdPassStats($pdo, 1001);
foreach ($stats as $row) {
printf("球队 %d:进攻三区传球 %d 次,成功 %d 次,成功率 %.2f%%\n",
$row['team_id'], $row['total_passes'],
$row['success_passes'], $row['success_rate']);
}
注意事项
- 坐标口径:确认数据源的 x 轴方向(从哪边底线起算)、场长是 105 还是 100/120,若坐标是归一化的 0–100,则阈值用 66.67。
- 传球起点 vs 终点:StatsBomb、Opta 等对“进攻三区传球”定义不同,常见是按起点,若业务需要按终点,把
start_x改为end_x。 - 排除定位球:角球、球门球、界外球是否计入,按业务需求加
pass_type过滤。 - 样本量:单场样本小,建议同时提供多场聚合或按球员/球队维度统计。
- 性能:给
(match_id, start_x)建联合索引。
如果你能说明数据源(Opta / StatsBomb / 自采)和坐标口径,我可以给出更精确的阈值和字段映射。
版权声明:NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播