学习编写复杂报告查询的最佳在线SQL教程是什么?

时间:2009-06-02 13:52:52

标签: sql oracle reporting

我的SQL技能相当有限,因为我发现自己最近使用的是数据库(Oracle),所以我想超越基本的选择语句。

我想写一些查询来执行诸如从多个表中获取数据,总和数量,比较日期,组,过滤等等。

您可以推荐哪些网站将SQL报告技能提升到更高级别?

5 个答案:

答案 0 :(得分:11)

选择Joe Celcko的SQL For Smarties。这是明确的把你的sql-to-next-level书籍之一。否则,只需继续编写查询。

确保您了解联接。从一开始,我的SQL方法一直是行数驱动的 - 换句话说,当我编写一个复杂的查询时,我总是#1确保它返回正确的行数。如果您的行数正确,那么您的总和/组/聚合都将是正确的。他们非常容易搞砸。

确保您了解数据。确保您了解密钥和唯一性,以便您可以强制执行联接。

你也可以阅读asktom.oracle.com了解很多非常酷的SQL技巧。 Laurent Schneider也是非常尖端的sql-wise。如果我在过去的5 - 6年里没有将问题设置为我的主页,那么我不会成为DBA /开发人员的一半。

最后,确保您了解基于集合的操作。将结果集视为一个整体,而不仅仅是行的集合。它会像你一样点击。这与行计数驱动的方法有关。

答案 1 :(得分:4)

我知道这不是在线的,但它适合您的账单T:

我建议你拿一份Anthony Mollinaro的SQL Cookbook。它描述了如何完成许多超出基本SELECT FROM WHERE的复杂事物。在一个上一个。生活,当对prev进行大量查询时。工作,那本书是我的救星,人们借了那本书。它有很多非常清晰的例子,它们的范围从简单(如何检索表上的行子集)到复杂(使用窗口函数生成直方图)。

这不是免费的,但这本书会很快收回成本,而且我想我会回答你会遇到的大部分问题。注意:我与O'Reilly或Mollinaro先生没有任何联系,我只是认为这本书很棒且非常有用。

答案 2 :(得分:2)

阅读Oracle数据仓库指南的第20,21和22章:http://download.oracle.com/docs/cd/B28359_01/server.111/b28313/toc.htm。它是关于分组,分析和模型子句。

答案 3 :(得分:1)

W3 Schools SQL Tutorial是个好地方。它给出了不同类型连接的一些示例,并详细介绍了许多函数(即sum,count,avg)。在理解复杂查询之前,我真的必须在SQL中构建一个基础。

答案 4 :(得分:1)

我刚刚找到了一个名为 SQL Tutorial 的网站,我认为该网站非常好,并希望与社区分享。它位于http://www.sql-tutorial.com/