You need to enable JavaScript to run this app. Google Data Studio 如何筛选超过50天未售出的产品
优惠活动
大模型
产品
解决方案
定价
更多

Google Data Studio 如何筛选超过50天未售出的产品

实现思路

核心逻辑:先获取全量去重的product_id列表,再筛选出「过去50天有过销售记录的product_id列表」,两个列表取差集就是超过50天无销售的产品,需要额外展示最后一次销售时间、累计销量等信息可以关联原表聚合查询。

1. SQL实现(适用于数据库表场景)

基础实现代码:

-- 第一步:获取所有去重的产品ID
WITH all_products AS (
    SELECT DISTINCT product_id FROM 你的表名
),
-- 第二步:获取过去50天有销售记录的产品ID
recent_sold_products AS (
    SELECT DISTINCT product_id 
    FROM 你的表名
    WHERE report_date >= DATE_SUB(CURRENT_DATE(), INTERVAL 50 DAY)
)
-- 第三步:取差集得到超过50天无销售的产品
SELECT a.product_id 
FROM all_products a
LEFT JOIN recent_sold_products r ON a.product_id = r.product_id
WHERE r.product_id IS NULL;

如果需要同时展示该产品最后一次销售时间、累计销量等信息,可以调整为:

SELECT 
    p.product_id,
    MAX(t.report_date) AS last_sale_date,
    SUM(t.quantity) AS total_sale_quantity
FROM (
    SELECT DISTINCT product_id FROM 你的表名
) p
LEFT JOIN 你的表名 t ON p.product_id = t.product_id
GROUP BY p.product_id
HAVING last_sale_date < DATE_SUB(CURRENT_DATE(), INTERVAL 50 DAY) OR last_sale_date IS NULL;

2. Python Pandas实现(适用于本地csv/excel表格场景)

基础实现代码:

import pandas as pd
from datetime import timedelta

# 读取表格数据,excel格式换pd.read_excel即可
df = pd.read_csv('你的文件路径.csv', parse_dates=['report_date'])

# 1. 取全量去重产品ID
all_products = df['product_id'].drop_duplicates()

# 2. 取过去50天有销售的产品ID,stat_date可替换为指定业务统计日期
stat_date = pd.to_datetime('today').normalize()
recent_day_threshold = stat_date - timedelta(days=50)
recent_sold = df[df['report_date'] >= recent_day_threshold]['product_id'].drop_duplicates()

# 3. 取差集得到符合要求的产品
no_sale_products = all_products[~all_products.isin(recent_sold)]

# 输出表格结果
print(no_sale_products.to_frame(name='product_id'))

如果需要附带产品最后销售时间等信息,可以调整为:

product_last_sale = df.groupby('product_id')['report_date'].max().reset_index(name='last_sale_date')
no_sale_products_detail = product_last_sale[product_last_sale['last_sale_date'] < recent_day_threshold]
print(no_sale_products_detail)

注意事项

  • 如果你有单独的产品维度表(存储所有在售/待售产品的表),优先用产品维度表的全量product_id做基准,不要用销售表的去重ID,避免把从未有过销售记录的新品漏掉
  • 统计日期如果不是取当天,而是固定的业务统计日期,记得替换代码里的CURRENT_DATE()或者stat_date为你指定的日期,避免计算偏差
  • 如果需要排除已经下架的产品,可以在全量product_id的筛选步骤加对应下架状态的过滤条件

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.08 21:48:02