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

如何实现特殊计数:同一ItemId下同颜色仅统计一次

实现特殊颜色计数需求的解决方案

没问题!这个需求本质是同一ItemId下的同一种颜色仅统计一次,核心思路是先对ItemId和Colors的组合去重,再按颜色分组计数。下面是两种常用场景的实现方法:

1. 数据库SQL实现

这是最常见的业务场景,用COUNT(DISTINCT)就能直接达成目标:

SELECT 
    Colors,
    COUNT(DISTINCT ItemId) AS Count
FROM 
    your_table_name  -- 替换成你的实际表名
GROUP BY 
    Colors;

逻辑说明:

  • COUNT(DISTINCT ItemId)会针对每个颜色,只统计关联的不重复ItemId数量,自动忽略同一ItemId下重复出现的同色记录。
  • 用你提供的测试数据运行后,结果完全符合预期:
    ColorsCount
    red2
    blue2
    green1

2. Python Pandas实现

如果是在数据分析场景中处理这类数据,可以用Pandas的去重+分组计数组合操作:

import pandas as pd

# 构造你的测试数据
df = pd.DataFrame({
    'ItemId': [10, 10, 10, 20, 20, 20],
    'Colors': ['red', 'red', 'blue', 'red', 'blue', 'green']
})

# 步骤1:按ItemId和Colors去重,保留唯一组合
unique_df = df.drop_duplicates(subset=['ItemId', 'Colors'])
# 步骤2:按Colors分组,统计每组的数量
result = unique_df.groupby('Colors').size().reset_index(name='Count')

print(result)

运行后会输出:

Colors  Count
0   blue      2
1  green      1
2    red      2

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.08 11:07:41