我试图计算每月发布的一系列政策。这接近返回正确的信息:
SELECT count(policy_no), left(issue_date,6)
FROM table_a
WHERE indicator = 'fln'
GROUP BY left(issue date,6)
指标正在缩小到我想要的政策类型。我唯一的问题是随着政策的更新,每年都会有一个相同政策编号的条目。我只需计算每个政策的最低发行日期,而不是每次都计算每个政策。如果政策是在2010年11月发布的,我希望它计算一次,而不是一次计算2010年11月,2012年,2012年等。发行日期的格式为yyyymmdd。只有年和月是相关的。
我确信这对于你们中经验丰富的人来说很容易,我还没有能够通过这个论坛上的其他问题把它拼凑起来。任何帮助将不胜感激!
答案 0 :(得分:1)
这样的东西会得到你想要的东西:
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,则需要添加日期生成器。