实用SQL(1)根据年月,获取不超过当前月的最新一条

该博客展示了如何从数据库中提取按月城市代码、分享费用、年份和月份的数据,并进行汇总分析。它聚焦于城市间的财务成本平均分摊情况,揭示了截至2021年5月前的数据趋势。关键操作包括筛选有效数据和按城市代码进行分组。
 select cityCode, shareExpense, year, month
        from (SELECT s.city_code      cityCode,
                     s.year,
                     s.month,
                     s.point_avg_cost shareExpense
              FROM bulletin_data_city_point_avg_cost s
              WHERE s.point_avg_cost IS NOT NULL
                AND concat(s.YEAR, CASE WHEN s.MONTH <10 THEN CONCAT("0", s.MONTH) ELSE s.MONTH END) <= 202105
                AND s.city_code is not null
                AND s.is_enable = 1
              ORDER BY s.year DESC,
                       s.month DESC) as b
        GROUP BY b.cityCode

private Map<String, FinancialCostBasicMonthProject> getPointsYearShareCostMap(ManageTimeUtils.ManageTime manageTime, String time) {
        List<FinancialCostBasicMonthProject> settlementCostBasisList = financialMapper.findPointsYearShareCost(manageTime.getYear(), manageTime.getMonth(), ManageTimeUtils.getMonthIdForNatural(time));
        Map<String, FinancialCostBasicMonthProject> cityShareCostMap = settlementCostBasisList.stream().collect(Collectors.toMap(FinancialCostBasicMonthProject::getCityCode, vo -> vo, (key1, key2) -> key2));
        if (MapUtils.isEmpty(cityShareCostMap)) {
            return new HashMap<>(FinancialConstants.CITY_NUMS);
        }
        return cityShareCostMap;
    }

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值