几列中的最小日期
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,则需要添加日期生成器。
我正在尝试统计每月签发的保单数量。这接近于返回正确的信息:
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,则需要添加日期生成器。