<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[ccyOracle的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/ccyOracle</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; ccyOracle]]></copyright><item><title><![CDATA[用开源报表工具SpringReport做车间大屏+Excel 导出，我踩过的一些坑，基于最初版本的设计开发]]></title><link>https://blog.youkuaiyun.com/ccyOracle/article/details/170194643</link><guid>https://blog.youkuaiyun.com/ccyOracle/article/details/170194643</guid><author>ccyOracle</author><pubDate>Fri, 06 Nov 2026 15:18:59 +0800</pubDate><description><![CDATA[使用SpringReport实现产线可动率分析，5大屏+5Excel模板，严守不改源码、不直连数据库约束。核心经验：界面配置有限，精确控制需改组件JSON，复杂逻辑靠URL传参绕行。重点突破双Y轴（seriesIndex绑定）、轴色/标签优化、饼图防重叠、下钻带参（别名列+drillParam）、日期控件刷新（依赖URL传参）、#{}与${}引号规则差异。关键结论：能配则配，不能配就改JSON，全不行就用URL传参。]]></description><category></category></item><item><title><![CDATA[从“给人看的 Excel“到“能入库的规范行“：点检表数据清洗逻辑拆解]]></title><link>https://blog.youkuaiyun.com/ccyOracle/article/details/170121595</link><guid>https://blog.youkuaiyun.com/ccyOracle/article/details/170121595</guid><author>ccyOracle</author><pubDate>Thu, 05 Nov 2026 08:55:01 +0800</pubDate><description><![CDATA[本文拆解点检表数据清洗逻辑：针对纸质表电子化后“给人看”与“能入库”之间的差距，构建纯本地离线的六步流水线，通过词典匹配、位置偏移与边界判定三层规则，精准识别表头、履历、项目，并统一以report_code关联三张结构化表（报表、项目、履历），实现可解释、可诊断的数据清洗。核心在于“不依赖网络、不泄露数据”，确保在无结构约束的复杂表格中稳定产出规范行。]]></description><category></category></item><item><title><![CDATA[制造工厂业务场景：当机器要读懂一张手写的点检表]]></title><link>https://blog.youkuaiyun.com/ccyOracle/article/details/170049218</link><guid>https://blog.youkuaiyun.com/ccyOracle/article/details/170049218</guid><author>ccyOracle</author><pubDate>Wed, 04 Nov 2026 16:56:13 +0800</pubDate><description><![CDATA[本文分享了在工厂点检表数据清洗中的实战经验：面对无规则、格式多变的纸质/Excel表单，系统需将“人能看懂”的表格转化为“机器可读”的结构化数据。核心挑战在于区分“无数据”与“未识别”，通过三层非AI逻辑（认字、定位、边界判断）实现可解释、可审计的识别。关键成果包括过程留痕、结构线框图、健康分评分及单元格级脱敏，确保在离线、保密前提下稳定运行。总结出三大原则：区分空与误识、警惕位置兜底、实现细粒度脱敏。]]></description><category></category></item><item><title><![CDATA[SQL语法之分析函数使用指南与注意事项]]></title><link>https://blog.youkuaiyun.com/ccyOracle/article/details/150640244</link><guid>https://blog.youkuaiyun.com/ccyOracle/article/details/150640244</guid><author>ccyOracle</author><pubDate>Sat, 23 Aug 2025 14:10:01 +0800</pubDate><description><![CDATA[SQL分析函数摘要：本文介绍三类分析函数用法。1)聚合类(SUM,AVG等)：OVER()整体计算，PARTITION BY分组，ORDER BY实现累计统计；2)排名类(RANK,ROW_NUMBER等)：必须含ORDER BY，可选PARTITION BY；3)位移类(LAG,LEAD等)：必须ORDER BY确定顺序。通过销售数据示例演示了各函数应用场景，特别强调分析函数内ORDER BY仅影响计算顺序，不改变结果展示顺序。最后指出窗口函数还支持ROWS/RANGE BETWEEN等高级用法。]]></description><category></category></item><item><title><![CDATA[SQL语法之exists和in的区别]]></title><link>https://blog.youkuaiyun.com/ccyOracle/article/details/150026444</link><guid>https://blog.youkuaiyun.com/ccyOracle/article/details/150026444</guid><author>ccyOracle</author><pubDate>Thu, 07 Aug 2025 22:40:57 +0800</pubDate><description><![CDATA[摘要：EXISTS和IN的核心区别在于，EXISTS检查子查询是否返回记录（布尔判断），适用于子查询结果集大而主查询结果集小的场景；IN检查字段值是否在子查询列表中，适用于相反情况。性能对比显示，当子查询数据量大时，EXISTS（依赖索引）明显优于IN（需生成临时列表）。实际建议：大数据量下优先使用EXISTS，特别是主查询筛选少量数据而关联大表时；仅当子查询结果集很小时考虑IN。注意确保关联字段有索引，且EXISTS支持更复杂的条件查询。]]></description><category></category></item><item><title><![CDATA[SQL优化之常用语句的调优]]></title><link>https://blog.youkuaiyun.com/ccyOracle/article/details/149913763</link><guid>https://blog.youkuaiyun.com/ccyOracle/article/details/149913763</guid><author>ccyOracle</author><pubDate>Mon, 04 Aug 2025 20:17:51 +0800</pubDate><description><![CDATA[SQL语句优化技巧摘要：本文总结了10个SQL优化要点，包括避免索引失效、使用commit提交、用EXISTS替代IN/join、临时表代替子查询、GROUPBY替代DISTINCT、使用内置函数、避免SELECT等。通过一个多表查询案例对比优化前后SQL：原SQL存在SELECT、笛卡尔积、NOTIN低效等问题；优化后使用WITHAS临时表、EXISTS替代JOIN、INNERJOIN避免笛卡尔积、DECODE函数等技巧，性能可提升5-10倍。验证执行计划可确认优化效果，重点关注全表扫描和临时表使用情况。]]></description><category></category></item><item><title><![CDATA[面试SQL题目之连续性登录问题]]></title><link>https://blog.youkuaiyun.com/ccyOracle/article/details/149813332</link><guid>https://blog.youkuaiyun.com/ccyOracle/article/details/149813332</guid><author>ccyOracle</author><pubDate>Thu, 31 Jul 2025 20:51:16 +0800</pubDate><description><![CDATA[本文介绍了用户连续性登录问题的SQL方法。通过创建包含用户ID和登录时间的表，并插入测试数据，展示了如何计算用户的最早、最晚登录时间及连续登录天数。关键思路是：将登录日期减去行号得到连续登录标识，相同标识的日期即为连续登录日期。核心SQL使用窗口函数ROW_NUMBER()配合日期运算，最后按用户分组统计起始日期、结束日期和连续天数。该方法能有效识别用户连续登录行为，适用于常见的用户活跃度分析场景。]]></description><category></category></item><item><title><![CDATA[delete和truncate的区别，和drop又有什么区别？]]></title><link>https://blog.youkuaiyun.com/ccyOracle/article/details/149689020</link><guid>https://blog.youkuaiyun.com/ccyOracle/article/details/149689020</guid><author>ccyOracle</author><pubDate>Sun, 27 Jul 2025 14:29:28 +0800</pubDate><description><![CDATA[数据库删除操作差异：DELETE是DML操作，可回滚并支持WHERE条件筛选，但速度最慢；TRUNCATE是DDL操作，快速清空表数据且不可回滚，会重置自增列；DROP也是DDL操作，直接删除整个表结构及数据，速度最快但不可恢复。三者执行速度依次递增，风险也随之增大，使用需谨慎。尤其注意DROP操作可能导致'删库跑路'的严重后果，重大操作前务必备份数据。]]></description><category></category></item><item><title><![CDATA[SQL语句执行顺序总结及大概示例]]></title><link>https://blog.youkuaiyun.com/ccyOracle/article/details/149666607</link><guid>https://blog.youkuaiyun.com/ccyOracle/article/details/149666607</guid><author>ccyOracle</author><pubDate>Sat, 26 Jul 2025 14:25:37 +0800</pubDate><description><![CDATA[不同数据库的逻辑执行顺序存在差异：Oracle执行顺序为FROM→WHERE→GROUP BY→HAVING→SELECT→ORDER BY；Hive则是FROM→WHERE→GROUP BY→SELECT→HAVING→ORDER BY；PostgreSQL和MySQL类似，都包含表关联操作（JOIN在WHERE前），但PostgreSQL支持LIMIT/OFFSET。主要区别体现在HAVING的位置（Hive在SELECT后）、LIMIT支持度（Oracle不支持）以及DISTINCT的执行时机。]]></description><category></category></item><item><title><![CDATA[SQL语法之union和union all 的区别？]]></title><link>https://blog.youkuaiyun.com/ccyOracle/article/details/149618321</link><guid>https://blog.youkuaiyun.com/ccyOracle/article/details/149618321</guid><author>ccyOracle</author><pubDate>Thu, 24 Jul 2025 23:39:06 +0800</pubDate><description><![CDATA[摘要： 本文比较了SQL中UNION ALL和UNION操作的差异。UNION ALL直接合并两表数据，保留所有重复行，效率较高。而UNION会基于所有列值进行全局去重，需额外排序操作，效率较低。关键区别在于：UNION ALL保留全部数据，UNION自动去重但性能较差。使用时需确保合并表的列数、数据类型一致，结果列名取自第一个SELECT语句。实际工作中推荐优先使用UNION ALL]]></description><category></category></item><item><title><![CDATA[SQL执行优化之连接查询时，条件写在where后面和写在on后面的区别]]></title><link>https://blog.youkuaiyun.com/ccyOracle/article/details/149504948</link><guid>https://blog.youkuaiyun.com/ccyOracle/article/details/149504948</guid><author>ccyOracle</author><pubDate>Wed, 23 Jul 2025 20:33:51 +0800</pubDate><description><![CDATA[SQL连接查询中ON与WHERE条件的关键区别：ON条件定义表间关联逻辑，保留左表所有记录，右表不匹配时补NULL（如第一条SQL结果同时包含c/d和a/b数据）；WHERE条件对最终结果全局过滤，不满足条件的行会被剔除（如第二条SQL仅保留a/b数据）。实际应用中，需根据需求选择：若需保留主表全部数据使用ON条件过滤右表，若需筛选最终结果集则使用WHERE条件。典型场景包括历史数据比对、数据质量检查等。]]></description><category></category></item><item><title><![CDATA[SQL优化小技巧之查询数据是否存在的优化]]></title><link>https://blog.youkuaiyun.com/ccyOracle/article/details/149466268</link><guid>https://blog.youkuaiyun.com/ccyOracle/article/details/149466268</guid><author>ccyOracle</author><pubDate>Sat, 19 Jul 2025 16:23:31 +0800</pubDate><description><![CDATA[如果你的数据库目标有非常多的数据，按照原来的做法会查询全部后统计出来，而优化后的SQL只查询到第一条就结束了。相当于你需要寻找操作上的跑道是否有标记的点，你原来的做法是在操场上跑一圈查看地面上所有有标记的点，再统计求和得出结果；而优化后的做法是直接跑起来，找到第一个标记的点就可以得到结果。，让数据库查询时遇到一条就返回结果，不要再继续查找还有多少条了。]]></description><category></category></item></channel></rss>