如何在Tableau中用运行计数和窗口函数创建参赛次数统计计算字段
在Tableau中计算车手累计参赛次数
需求说明
基于包含raceid和driverid字段的results.csv,计算每位车手的累计参赛次数,结果格式要求为RaceId, DriverId, 累计参赛次数,核心逻辑是同一车手每参与一次赛事,计数逐次累加。
正确计算字段公式
创建名为累计参赛次数的计算字段,输入以下公式:
RUNNING_SUM(1) OVER (PARTITION BY [DriverId] ORDER BY [RaceId])
公式解释
PARTITION BY [DriverId]:按车手ID分组,确保累计计数仅针对同一车手的赛事记录ORDER BY [RaceId]:按赛事ID排序,保证累计是按照赛事举办的先后顺序计算RUNNING_SUM(1):对每一行的固定值1进行累加,实现逐次累计的计数效果
验证示例数据
针对你给出的示例数据,该公式会返回如下结果:
- RaceId=18、DriverId=2 → 累计参赛次数=1
- RaceId=18、DriverId=3 → 累计参赛次数=1
- RaceId=19、DriverId=2 → 累计参赛次数=2
- RaceId=19、DriverId=3 → 累计参赛次数=2
- RaceId=19、DriverId=4 → 累计参赛次数=1
完全符合预期逻辑。
关于WINDOW_COUNT的替代写法
如果坚持使用WINDOW_COUNT,需要明确指定窗口范围,公式如下:
WINDOW_COUNT([DriverId]) OVER (PARTITION BY [DriverId] ORDER BY [RaceId] ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW)
不过RUNNING_SUM的写法更简洁直观,推荐使用。
操作步骤
- 将
results.csv导入Tableau - 点击左侧数据面板的「创建计算字段」
- 输入上述公式并命名为「累计参赛次数」
- 将
RaceId、DriverId和「累计参赛次数」拖到视图区域即可得到目标结果
内容的提问来源于stack exchange,提问作者CHAALAL Mohamed Elmondhir
相关产品推荐
相关产品推荐

