sql >> データベース >  >> RDS >> PostgreSQL

dplyr left_join by未満、より大きい条件

    data.table v1.9.8以降の非等価結合を追加します

    library(data.table) #v>=1.9.8
    setDT(sdata); setDT(fdata) # converting to data.table in place
    
    fdata[sdata, on = .(fyear >= byear, fyear < eyear), nomatch = 0,
          .(id, x.fyear, byear, eyear, val)]
    #    id x.fyear byear eyear val
    # 1:  1    1998  1995  2000   1
    # 2:  2    1998  1995  2000   1
    # 3:  3    1998  1995  2000   1
    # 4:  5    1998  1995  2000   1
    # 5:  8    1998  1995  2000   1
    # 6: 13    1998  1995  2000   1
    # 7:  1    1999  1995  2000   1
    # 8:  2    1999  1995  2000   1
    # 9:  3    1999  1995  2000   1
    #10:  5    1999  1995  2000   1
    #11:  8    1999  1995  2000   1
    #12: 13    1999  1995  2000   1
    #13:  1    2000  2000  2005   5
    #14:  2    2000  2000  2005   5
    #15:  3    2000  2000  2005   5
    #16:  5    2000  2000  2005   5
    #17:  8    2000  2000  2005   5
    #18: 13    2000  2000  2005   5
    #19:  1    2001  2000  2005   5
    #20:  2    2001  2000  2005   5
    #21:  3    2001  2000  2005   5
    #22:  5    2001  2000  2005   5
    #23:  8    2001  2000  2005   5
    #24:  2    2002  2000  2005   5
    #25:  3    2002  2000  2005   5
    #26:  2    2003  2000  2005   5
    #27:  3    2003  2000  2005   5
    #    id x.fyear byear eyear val
    

    これをfoverlapsで機能させることもできます 1.9.6でもう少し努力して。



    1. データベースの最適化:インデックス

    2. プロアクティブなMySQLモニタリング(Developer Studio / Advisors Angle)

    3. Postgresにモジュールをインポートしたり拡張機能をインストールしたりするにはどうすればよいですか?

    4. justify_interval()がPostgreSQLでどのように機能するか