MyBatis 语法不支持 having 节点

MyBatis 不支持 having 节点

比如在 GROUP BY 之后添加了 HAVING 子句,其内容为SUM(vsbsad.business_income) >= 0,该子句会对分组后的 SUM(vsbsad.business_income) 结果进行过滤,仅保留求和结果不为负数的分组记录。但是试过不支持。可把 having 条件嵌入到 select 语句里,当作一个子查询,然后在外部查询里对该条件进行过滤

<select id="findStoreSaleInfoDetail" resultType="com.test.dto.res.store.StoreSaleBaseInfolDTO">
    SELECT *
    FROM (
        SELECT
            ds.id AS storeId,
            ds.store_name AS storeName,
            SUM(vsbsad.business_income) AS businessIncome
        FROM
            store ds
            INNER JOIN
            store_business_di vsbsad
            ON
                ds.id = vsbsad.store_id
        <where>
            <if test="startDate != null and endDate != null">
                and vsbsad.sdt between #{startDate} and #{endDate}
            </if>
            <!-- 新增 storeIds 过滤条件 -->
            <if test="req.storeIds != null and req.storeIds.size() > 0">
                AND ds.id IN
                <foreach item="storeId" collection="req.storeIds" open="(" separator="," close=")">
                    #{storeId}
                </foreach>
            </if>
        </where>
        GROUP BY
            ds.id,
    ) subquery
    WHERE subquery.businessIncome >= 0
</select>    
<think>嗯,用户现在大二,学了C++面向对象但基础不好,假期自学了Python,这学期在学Java和数据库。暑假想找实习,需要怎么做,找什么岗位。首先,我得分析他的技术栈和可能的岗位方向。 他接触了C++、Python、Java,还有数据库。这些语言常用于后端开发、数据分析、或者全栈。但C++基础差,可能更倾向Python和Java。数据库的学习可能指向后端或者数据相关岗位。 实习岗位方面,大二学生可能竞争力不够,但仍有机会。需要考虑他的实际能力,建议从基础岗位入手,比如Java后端开发实习生,或者Python数据分析实习生。另外,数据库的学习可能适合数据库管理或运维方向,但通常这些岗位对经验要求较高,可能更适合后端开发结合数据库使用。 用户需要明确方向,然后针对性准备。比如,选择Java后端的话,需要巩固Java基础,学习Spring框架,数据库操作,做项目练习。如果选Python数据分析,需要学习Pandas、NumPy,做数据分析项目。 另外,简历和项目经验是关键。他可能需要指导如何构建项目,展示技能。同时,求职技巧,如简历撰写、面试准备,也需要建议。 可能用户比较迷茫,需要帮他梳理学习路径,制定计划,时间安排,以及如何高效准备实习申请。还要考虑他的学习时间,距离暑假还有几个月,如何分配时间学习技术和准备求职材料。 还要提醒他关注实习招聘的时间线,比如春季招聘,提前投递,多平台寻找机会,内推等。可能还需要建议他参加竞赛或开源项目,增强简历。 最后,鼓励他保持信心,持续学习,及时调整计划。可能存在的误区是贪多求全,应该聚焦一个方向深入,快速补齐基础,做实战项目。</think>以下是为大二学生制定的暑期实习准备方案(分步骤拆解+技术方向建议): 一、岗位选择建议(按优先级排序) 1. Java后端开发实习生 - 优势:学校课程支持+企业需求量大 - 技术要求:Java基础+Spring框架+MySQL+简单项目经验 - 准备路线:JavaSE → Spring Boot → MySQL → 项目实战 2. Python数据分析实习生 - 优势:自学基础+岗位门槛相对较低 - 技术要求:Pandas/Numpy基础+可视化+SQL - 准备路线:Python数据处理 → 数据分析项目 → SQL强化 3. 数据库管理实习生(次选) - 优势:课程直接相关 - 技术要求:SQL优化+基础运维知识 - 准备路线:MySQL进阶 → 索引优化 → 简单运维 二、关键时间节点规划(以3月-6月为例) 1. 3月:技术筑基阶段 - 每天2小时Java学习(重点:集合/IO/多线程) - 每周完成1个Python小项目(爬虫/数据分析) - 掌握SQL基础语法(增删改查+联表查询) 2. 4月:框架学习阶段 - 掌握Spring Boot基础开发(含MyBatis整合) - 完成1个JavaWeb项目(建议电商/管理系统) - 学习Pandas数据处理(重点:数据清洗/分析) 3. 5月:项目冲刺阶段 - 完善2个完整项目(Java+Python各1) - 刷LeetCode简单题(重点:数组/字符串处理) - 制作技术博客(每周更新学习笔记) 4. 6月:求职准备阶段 - 完善简历(突出项目和技术栈) - 准备面试常见问题(技术+场景题) - 开始投递简历(提前批+日常实习) 三、重点技术学习清单 1. Java方向必学: $$ \text{JavaSE} \rightarrow \text{Maven} \rightarrow \text{Spring Boot} \rightarrow \text{MySQL} \rightarrow \text{Redis基础} $$ 示例代码重点: ```java // 掌握Spring Boot基础Controller写法 @RestController public class DemoController { @GetMapping("/hello") public String hello() { return "Hello, Spring Boot!"; } } ``` 2. Python方向补充: $$ \text{Pandas} \rightarrow \text{Matplotlib} \rightarrow \text{Scikit-learn基础} \rightarrow \text{SQLAlchemy} $$ 示例数据分析流程: ```python import pandas as pd data = pd.read_csv('sales.csv') monthly_sales = data.groupby('month')['amount'].sum() monthly_sales.plot(kind='bar') ``` 3. 数据库关键点: ```sql -- 掌握复杂查询写法 SELECT u.name, COUNT(o.order_id) FROM users u LEFT JOIN orders o ON u.id = o.user_id WHERE o.create_time > '2023-01-01' GROUP BY u.id HAVING COUNT(o.order_id) > 5; ``` 四、项目构建建议(选择1-2个深度开发) 1. 电商系统(Java方向) - 技术栈:Spring Boot + MySQL + Redis - 功能模块:商品管理/订单系统/支付模拟 - 难点突破:事务处理/缓存应用 2. 疫情数据分析(Python方向) - 技术栈:Pandas + Matplotlib + Flask - 实现步骤:数据清洗 → 可视化展示 → Web展示 - 成果展示:生成趋势图/地区对比分析 五、简历优化技巧 1. 教育背景: - 列出相关课程:Java程序设计/数据库原理 - 注明GPA(若>3.0可突出显示) 2. 项目描述模版: $$ \text{技术栈} + \text{实现功能} + \text{难点突破} + \text{量化成果} $$ 示例: "开发图书管理系统(Spring Boot+MySQL),实现图书借阅流程自动化,采用Redis缓存热门查询,使响应时间减少40%" 六、面试准备重点 1. 技术问题准备: - Java:多线程/集合框架/JVM内存模型 - SQL:索引优化/事务特性/慢查询处理 - Python:装饰器/生成器/Pandas常用操作 2. 高频场景题: - "如何设计一个校园订餐系统?" - "如果查询突然变慢,如何排查?" - "用户登录功能需要考虑哪些安全因素?" 七、资源推荐 1. 学习平台: - 慕课网(Java实战课程) - Codecademy(SQL交互练习) - Kaggle(数据分析项目) 2. 工具准备: - IDEA(Java开发) - Jupyter Notebook(数据分析) - Postman(API测试) 特别提醒:3-4月要开始关注实习招聘信息,建议每天花30分钟浏览: - 企业官网招聘板块 - 实习僧/BOSS直聘 - 学校就业网 - 技术论坛招聘专区 当前阶段不必追求大厂实习,重点在于积累项目经验和职场认知。建议海投50+岗位,保持每周3-5场面试的节奏,及时复盘面试表现。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值