编辑SQL查询以按实际数据和相同但按日期范围筛选的数据进行筛选

编辑SQL查询以按实际数据和相同但按日期范围筛选的数据进行筛选,sql,postgresql,Sql,Postgresql,我需要调整一个查询,返回客户购买的类别组,因此我需要显示客户类别的名称,历史和每周。实际的查询已经显示了每个客户机的所有类别名称(客户机的每个类别对应一行),其中该客户机有一个订单。(订单未取消) 因此,我需要添加另一个名为“category_week”的列,其中将显示由表履行组的创建日期字段过滤的所有类别(该字段是时间戳,如28/09/20 06:04)。因此,如果创建的日期介于日期X和日期Y之间,则在新列中添加cat\u name 因此,客户将拥有本周购买的所有历史类别和类别(如果类别的范围

我需要调整一个查询,返回客户购买的类别组,因此我需要显示客户类别的名称,历史和每周。实际的查询已经显示了每个客户机的所有类别名称(客户机的每个类别对应一行),其中该客户机有一个订单。(订单未取消)

因此,我需要添加另一个名为“category_week”的列,其中将显示由表
履行组
创建日期
字段过滤的所有类别(该字段是
时间戳
,如
28/09/20 06:04
)。因此,如果创建的日期介于日期
X
和日期
Y
之间,则在新列中添加
cat\u name

因此,客户将拥有本周购买的所有历史类别和类别(如果类别的范围不匹配,但它有一个历史值,则在
category\u week
列中必须为空,并填写
category\u historical

例如:

category_historical, category_week, customer_id
cat a                cat a          123
cat b                               123
cat c                cat c          123

cat a                               555
cat b                cat b          555
到目前为止,我有一个疑问:

SELECT DISTINCT gmv.cat_name as "category_historical", c.customer_id
FROM gmv_category AS gmv
LEFT JOIN fulfillment_group AS fg 
  ON gmv.fg_id = fg.fg_id
LEFT JOIN "order" AS o
  ON o.order_id = fg.order_id
LEFT JOIN customer AS c
  ON o.customer_id = c.customer_id
  AND  o.order_status NOT LIKE '%CANCEL%'
ORDER BY c.customer_id
如何编辑此查询以添加此行为