You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何统计满足duration≥对应节目最大时长90%的行数?

问题描述

现有如下播放事件数据表格:

titleduration
programme a1000
programme b1500

需要统计所有满足**该行的duration至少为对应programme的最大duration的90%**的行数(每行代表一个播放事件,duration为事件持续秒数)。

实现方案

1. Excel/LibreOffice Calc 操作步骤

  • 新增列(如C列),计算每行对应programme的最大时长:在C2单元格输入=MAXIFS(B:B,A:A,A2),下拉填充至所有行。
  • 新增列(如D列),标记符合条件的行:在D2单元格输入=IF(B2>=0.9*C2,1,0),下拉填充。
  • 统计总数:在空白单元格输入=SUM(D:D),结果即为符合条件的行数。

2. SQL 查询语句

假设数据表名为play_events,字段为title和duration,使用窗口函数实现:

SELECT COUNT(*) AS qualified_rows
FROM (
    SELECT 
        title,
        duration,
        MAX(duration) OVER (PARTITION BY title) AS max_duration
    FROM play_events
) AS sub_query
WHERE duration >= 0.9 * max_duration;

3. Python Pandas 代码示例

import pandas as pd

# 构造数据(实际场景可通过read_csv等方法读取)
df = pd.DataFrame({
    'title': ['programme a', 'programme b'],
    'duration': [1000, 1500]
})

# 计算每个programme的最大时长
df['max_duration'] = df.groupby('title')['duration'].transform('max')

# 统计符合条件的行数
qualified_count = df[df['duration'] >= 0.9 * df['max_duration']].shape[0]

print(f"符合条件的行数:{qualified_count}")

内容的提问来源于stack exchange,提问作者Bertie Shaw

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 16:48:26