`
JavaStudyEye
  • 浏览: 80615 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

oracle 统计 <sql>

阅读更多
昨天在搞一个统计查询sql,纠结了3个小时,不过最后还是踩着前辈的肩膀,解决了问题。

select to_timestamp('2012-11-11 01:00:00.0','yyyy-mm-dd hh24:mi:ssxff') from dual;

背景:
     订单项表  表里面有 门票类型 、 购买门票数量字段,以及订单头ID字段。 
      订单头表  与 订单项表是 一对多的关系。表里含有游玩日期和通关状态 
                游玩日期字段同一个门票类型也可以被买多次。 
      景区表    景区表和订单头表是多对多的关系 
      

需求:
     通过 达到如下结果:
        
        景区名称      门票类型    数量       已通关      游玩日期 
        欢乐谷         成人         12        10      2011-01-30 
         欢乐谷2      儿童         9            0      2011-01-30 
         欢乐谷3      军人         20          10      2011-01-30 
     要求
       只用一条sql实现,如上功能
实现过程:
     
SELECT 
    WMSYS.WM_CONCAT(distinct(P.PLACE_NAME)) AS placeName, 
    WMSYS.WM_CONCAT(distinct(O.TICKET_TYPE_NAME)) AS ticketTypName, 
    count(O.QUANTITY) AS ticketCounts, 
    count(decode(OH.STATUS,'已通关', 1)) AS alwaysCarnet, 
    WMSYS.WM_CONCAT(distinct(TO_CHAR(OH.VISIT_DATE, 'yyyy-mm-dd'))) AS visitDate, 
                
FROM 
    PLACES P,ORDER_HEAD_PLACES OHP,ORDER_HEAD OH, ORDERS O 
WHERE 
    OHP.PLACE_ID=P.PLACE_ID 
    AND P.PLACE_ID="某个景区的id" 
    AND OHP.ORDER_HEAD_ID=OH.ORDER_HEAD_ID 
    AND OH.ORDER_HEAD_ID=O.ORDER_HEAD_ID 
    AND TT.TICKET_TYPE_ID=O.TICKET_TYPE_ID 
    AND OH.VISIT_DATE=TO_DATE(游玩时间,'yyyy-mm-dd') 
    AND (OH.STATUS='已通关' OR OH.STATUS='未通关') 
    GROUP BY O.TICKET_TYPE --门票类型 



说明:其实就是 关注一下oracle的 WMSYS.WM_CONCAT decode 方法,好吧,到网上看看它们的用法,这里就不写了。没有啥技术含量,BUT!唯有努力。。。

INSTR(C1,C2,I,J)
在一个字符串中搜索指定的字符,返回发现指定的字符的位置;
C1 被搜索的字符串
C2 希望搜索的字符串
I 搜索的开始位置,默认为1
J 出现的位置,默认为1

substr( string, start_position, [ length ] )
取子字符串,从start_position开始,取length个,length为可选,如果length为空则返回start_position后的所有字符。


declare @xml xml
set @xml='
<root> 
<tag name="艾滋病">新闻1</tag> 
<tag name="艾滋病">新闻2</tag> 
<tag name="健康"></tag> 
</root>'

SELECT @xml.query('/root/tag[@name="艾滋病"]/text()')

--result
--新闻1新闻2



分享到:
评论

相关推荐

    SQL语句,统计出班级的男女人数

    经典面试题目:有一个学生记录的表student,形式如下: &lt;br&gt; name class sex &lt;br&gt; 1 a 1(男) &lt;br&gt; 2 b 2(女) &lt;br&gt; 3 c 1 &lt;br&gt; 4 a 1 &lt;br&gt; 5 a 2 &lt;br&gt; 6 a 1 &lt;br&gt; …… &lt;br&gt; 现要统计每个班级的男女人数,结果如下: ...

    C#编程经验技巧宝典

    55&lt;br&gt;&lt;br&gt;0076 约瑟夫环问题 56&lt;br&gt;&lt;br&gt;0077 猴子选大王 57&lt;br&gt;&lt;br&gt;0078 如何判断IP是否正确 57&lt;br&gt;&lt;br&gt;0079 如何将小写金额转换为大写金额 57&lt;br&gt;&lt;br&gt;0080 统计文本字数 58&lt;br&gt;&lt;br&gt;0081 文本中首字母改...

    C#.net_经典编程例子400个

    81&lt;br&gt;实例068 在ListView控件中对数据排序或统计 83&lt;br&gt;实例069 在ListView控件中绘制底纹 84&lt;br&gt;实例070 在列表视图中拖动视图项 85&lt;br&gt;实例071 用ListView控件选取整行数据 88&lt;br&gt;实例072 用ListView...

    AppFramework_V1.0_New

    14.5&lt;br&gt;1.32&lt;br&gt;&lt;br&gt;1.21&lt;br&gt;&lt;br&gt;插入实体&lt;br&gt;&lt;br&gt;(20次insert)&lt;br&gt;36.1&lt;br&gt;17.4&lt;br&gt;2.07&lt;br&gt;&lt;br&gt;更新实体&lt;br&gt;&lt;br&gt;(20次单条update)&lt;br&gt;23.5&lt;br&gt;15.9&lt;br&gt;&lt;br&gt;SqlMap:20.3&lt;br&gt;1.48&lt;br&gt;&lt;br&gt;1.16&lt;br&gt;&lt;br&gt;查询结果集...

    AppFramework数据库访问组件_代码生成插件_V1.1.rar

    18.0&lt;br&gt;1.23&lt;br&gt;&lt;br&gt;1.10&lt;br&gt;&lt;br&gt;每秒插入实体&lt;br&gt;&lt;br&gt;(20次insert)&lt;br&gt;41&lt;br&gt;21&lt;br&gt;1.95&lt;br&gt;&lt;br&gt;更新实体&lt;br&gt;&lt;br&gt;(20次单条update)&lt;br&gt;27&lt;br&gt;19&lt;br&gt;&lt;br&gt;SqlMap:24&lt;br&gt;1.42&lt;br&gt;&lt;br&gt;1.13&lt;br&gt;&lt;br&gt;查询结果集(平均101...

    Sqlserver2000经典脚本

    学号.sql&lt;br/&gt;│ 开票统计--涉及到连号处理.sql&lt;br/&gt;│ 新编号查询示例(分类查询).sql&lt;br/&gt;│ 新编号查询示例.sql&lt;br/&gt;│ 日期流水号.sql&lt;br/&gt;│ 材料流水号.sql&lt;br/&gt;│ 流水号.sql&lt;br/&gt;│ 箱编号连号处理.sql&lt;br/&gt;...

    PL/SQL Developer 6.05注册版-1

    &lt;br&gt;&lt;br&gt;性能优化——使用PL/SQL Profiler,可以浏览每一执行的PL/SQL代码行的时序信息(Oracle8i或更高),从而优化您SQL和PL/SQL的代码性能。&lt;br&gt;更进一步,您还可以自动获取所执行的SQL语句和PL/SQL程序统计信息...

    Object Browser7.0中文版(ORACLE数据库的开发工具)

    另外,在显示结果的同时,SQL的执行计划和统计信息也被显示出来,这样您可以一边看着Oracle的内部优化算法,一边做出高效率的程序来.&lt;br&gt; &nbsp;&nbsp;&nbsp;&nbsp;Object&nbsp;Browser也支持托拽机能.对已经保存好的...

    PL/SQL Developer 7.1.5 注册版-3

    &lt;br&gt;&lt;br&gt;性能优化——使用PL/SQL Profiler,可以浏览每一执行的PL/SQL代码行的时序信息(Oracle8i或更高),从而优化您SQL和PL/SQL的代码性能。&lt;br&gt;更进一步,您还可以自动获取所执行的SQL语句和PL/SQL程序统计信息...

    oracle学习笔记

    =、&lt;&gt;、!&gt;、!&lt;` - **范围**:`BETWEEN AND、NOT BETWEEN AND` - **集合**:`IN、NOT IN` - **字符匹配**:`LIKE、NOT LIKE` - **空值**:`IS NULL、IS NOT NULL` - **逻辑运算符**:`AND、OR、NOT` #### 六、聚集...

    PL/SQL Developer 7.1.5 注册版

    &lt;br&gt;&lt;br&gt;性能优化——使用PL/SQL Profiler,可以浏览每一执行的PL/SQL代码行的时序信息(Oracle8i或更高),从而优化您SQL和PL/SQL的代码性能。&lt;br&gt;更进一步,您还可以自动获取所执行的SQL语句和PL/SQL程序统计信息...

    Oracle SQL Handler (Oracle客户端工具) V3.1

    如何使用,请参照解压后的帮助文件 Help.html 【软件功能】 &lt;1&gt; 以表格的形式显示 Select SQL 语句的查询结果,可以直接对查询结果进行再操作,如修改、插入、删除、保存、多功能拷贝、导出、数字统计、行列移动、列...

    Hive配置(Oracle数据库为元数据)

    &lt;value&gt;oracle.jdbc.driver.OracleDriver&lt;/value&gt; &lt;description&gt;Driver class name for a JDBC metastore&lt;/description&gt; &lt;/property&gt; &lt;property&gt; &lt;name&gt;javax.jdo.option.ConnectionUserName&lt;/name&gt; &lt;value&gt;...

    Oracle备份恢复实战数据泵

    CREATE DIRECTORY &lt;目录对象名&gt; AS '&lt;操作系统路径&gt;'; ``` - **查看默认目录**:查询默认的目录对象,以便了解数据泵作业将把备份文件、日志文件和SQL文件存储在哪里。 ```sql SELECT * FROM DBA_DIRECTORIES...

    Oracle开发工具 - Oracle SQL Handler(功能强大,超方便好用, 免装客户端, Windows / Linux)

    &lt;2&gt;智能的SQL编辑器:自动弹出提示窗口,列出关键字、关键字组合、函数名、列名、对象 名、对象类型、参数、包内的过程和函数,提高SQL编辑效率。例如: (1)输入字串“sel”,一秒钟后列出以“sel”开头的所有...

    Oracle 11g SQL和PL SQL从入门到精通 pdf格式电子书 下载(一)

    Oracle 11g SQL和PL SQL从入门到精通 pdf格式电子书 下载(一) http://download.csdn.net/source/3268267 Oracle 11g SQL和PL SQL从入门到精通 pdf格式电子书 下载(二) ...

    震撼推出超方便实用的Oracle开发工具 - Oracle SQL Handler,双语界面,智能SQL编辑器,免装Oracle客户端,能运行于Windows, 双语界面

    &lt;1&gt;将 SELECT 语句的查询结果显示在工作表,可以直接对查询结果进行再操作,如 修改、插入行、删除行、提 交(将表格中的数据改变写入相应的数据库表中)、多功能拷贝、将选择的单元格数据导出为 XLS /CSV /INSERT ...

    高清完整版 Oracle 高性能SQL引擎剖析SQL优化与调优机制详解

    Oracle的SQL优化与调优机制复杂多样,涵盖了从SQL语句的编写、执行计划的选择、到资源管理的全方位调优方法。为了深入理解Oracle SQL优化与调优机制,需要掌握以下几个核心知识点。 首先,要掌握Oracle SQL的基本...

Global site tag (gtag.js) - Google Analytics