zoukankan      html  css  js  c++  java
  • 最新解决的sql:病人相邻两次看病小于3天

    oracle爱好者 的北京-白水提出,需求如下图

    需要列出每个病人相邻登记id(来医院),其中下一条的登记时间-上一条的离开时间>3天。

    临近晚上下班提出的,我一路上都在思考,是不是用到了partition之类。

    我新建了表test如下

    用到了自连接

    select a.* from test a inner join test b
    on a.id=b.id 
    where a.vid=b.vid+1
    and a.st-b.en>=2

    但是这里因为a.vid=b.vid+1,最小的满足条件的就找不到了,发现这时候取b.*

    select b.* from test a inner join test b
    on a.id=b.id 
    where a.vid=b.vid+1
    and a.st-b.en>=2

    两者再次union,去掉重复的一行sum 2 11 19

    (select a.* from test a inner join test b
    on a.id=b.id 
    where a.vid=b.vid+1
    and a.st-b.en>=2)
    union
    (select b.* from test a inner join test b
    on a.id=b.id 
    where a.vid=b.vid+1
    and a.st-b.en>=2)
    

      

    搞定

    2012-12-10 更新

      

  • 相关阅读:
    Spark RDD 创建(一)
    编译Spark-1.6.0源码
    Strom学习笔记一
    Hbase笔记——RowKey设计
    Hbase物理模型
    HDFS分布式文件系统设计思想
    Hbase 基本命令
    内部排序算法
    278. First Bad Version
    266. Palindrome Permutation
  • 原文地址:https://www.cnblogs.com/sumsen/p/2808210.html
Copyright © 2011-2022 走看看