几列中的最小日期

minimum date among several columns

我正在尝试统计每月签发的保单数量。这接近于返回正确的信息:

SELECT count(policy_no), left(issue_date,6)
FROM table_a
WHERE indicator = 'fln'
GROUP BY left(issue date,6)

指标正在将范围缩小到我想要的政策类型。我遇到的唯一问题是,随着保单的更新,每年都会有一个保单编号相同的条目。我只需要计算每份保单的最低签发日期,而不是每次都计算每份保单。如果一项政策是在 2010 年 11 月发布的,我希望它计算一次,而不是 2010、2011、2012 年 11 月等一次。发布日期的格式为 yyyymmdd。只有年份和月份是相关的。

我相信这对你们中更有经验的人来说是一个简单的问题,我无法通过这个论坛上的其他问题将其拼凑起来。如有任何帮助,我们将不胜感激!

像这样会得到你想要的:

SELECT LEFT(FirstIssued, 6) AS YYMM, COUNT(DISTINCT Policy_No) AS NumPolicies
  FROM 
  (
    SELECT Policy_No, MIN(issue_date) AS FirstIssued
      FROM table_a
    WHERE indicator = 'fln'
    GROUP BY Policy_No
  ) A
GROUP BY LEFT(FirstIssued,6)

关键是先找到每项政策的最短日期,然后再汇总计数。请注意,您将出现的唯一月份是那些至少有一项政策的月份,因此如果您希望使用 0,则需要添加日期生成器。