仅当至少 6 个月的活动时才包括在内

  • 本文关键字:活动 包括 mysql sql
  • 更新时间 :
  • 英文 :


我如何只包括b2b_id公司,每月至少活动 1 张发票,为期 6 个月。

SELECT
b2b_id,
uid,
issue_date),
due_date,
COUNT(*) AS cnt
FROM t_invoice
GROUP BY b2b_id, last_day(issue_date)
HAVING cnt >= 1

利用 having 子句,再增加一个条件。请注意,选择子句中不必存在聚合使用。

SELECT
b2b_id
, uid
, issue_date
, due_date
, COUNT(*) AS cnt
FROM t_invoice
GROUP BY
b2b_id
, last_day(issue_date)
HAVING cnt >= 1
AND COUNT(DISTINCT (case when issue_date >= (current_date - interval 6 month) then month(issue_date) end)) = 6

不确定使用哪个日期列,我选择了issue_date

  • 如果issue_date是>= 今天减去 6 个月,则返回该月份的数字
  • 计算不同的月份数字
  • 如果为 6,则在过去 6 个月内每月至少一次isse_date

相关内容

最新更新