写复杂SQL语句能力(电信行业报表SQL、数据仓库)
ORACLE数据库,刚进电信实习,一个经营分析系统的项目组,主要做运维、数据仓库。最基本的事情就是完成电信方要求的各种报表,需要的能力就是写SQL。目前对简单的SQL语句,关键字都了解,问题是对于复杂SQL很头疼,基本上看不懂,即使拿到别人写的几十行几百行的SQL也是摸不着头脑(我们的报表SQL经常使用多个临时表分步查询来得到目标表)。我知道,关于报表SQL,对表结构、统计口径的熟悉是很重要的,但是我现在即使熟悉,也缺乏写复杂SQL的能力,一个多月还在帮其他人核对数据,太没意思了,所以现在有以下几个问题请教:
1、拿到复杂SQL,看懂它需要一个什么样的思路;
2、写复杂SQL,特别是关于电信行业报表SQL,各种all union,decode来处理很多字段,以实现目标表,各种头痛;
3、另外就是如果有做相同工作的前辈,请教一些需要自己多学哪些知识,如果锻炼能力,比如一些流程SHELL,稽核SHELL,流程配置等等工作。(本人刚去,很多东西知识接触到,不熟悉,不会,但是很想长久做这个工作,并且能够独当一面)
4、请推荐一本关于数据库的书,主要是提高写SQL能力的,基础语法及简单SQL语句最好简略带过的那种。准备在春节期间自己多看看,收假以后找项目经理,希望安排一些实际的工作,比如先从写报表开始。
我现在时间很多,没有什么任务,自己又很想学,也许是因为能力不强,也没找到正确的学习方法,感觉没有提高,又不敢找经理要工作安排。对于我这样一个实习生,真的很困惑。