【问题标题】:How to Select dates when i sold nothing?我什么都没卖时如何选择日期?
【发布时间】:2023-01-03 20:05:42
【问题描述】:

假设我有一个从 01-01-2020 到 01-01-2023 的 item_sold 表,其中包含 product_id、product_name、数量和日期列。

我想得到我什么都没卖的所有日期。 我正在使用 Postgresql,请帮助我解决这个问题。

我尝试了 withclaue 和许多其他东西,但它们没有用。

【问题讨论】:

  • 您如何检查日期,表格中是否有所有日期,数量为 0?
  • 我的意思是我已经存储了所有销售日期在 2020-2021 年的已售产品,我想要我什么都没卖的日期,我想要的日期不在我的列中,而是在 2020-2021 的时间范围内

标签: sql postgresql data-analysis


【解决方案1】:

您需要某种日历表,其中包含您可能想要报告的所有日期。假设日期范围是 2020 年到 2023 年(含)的整个年份,我们可以尝试以下左反加入方法:

WITH dates AS (
    SELECT ('2020-01-01'::date + s.a) AS dt
    FROM generate_series(0, 365*4) AS s(a)
)

SELECT d.dt
FROM dates d
LEFT JOIN yourTable t
    ON t.item_sold = d.dt
WHERE t.item_sold IS NULL
ORDER BY d.dt;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-10-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-30
    相关资源
    最近更新 更多