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

最初の2列で同じ番号の組み合わせを持つ行を検出し、3番目の列で番号が最も大きい行を選択します

    アイデアはこれに似ています pminを使用して、2つの追加の列を作成できます pmax 次のようにグループ化します:

    data.table 解決。ただし、data.tableが必要ない場合でも、このアイデアを使用できます。ただし、Rコードだけでdata.tableソリューションよりも速くなる可能性はほとんどありません。

    # assuming your data.frame is DF
    require(data.table)
    DT <- data.table(DF)
    # get min of V1,V2 on one column and max on other (for grouping)
    DT[, `:=`(id1=pmin(V1, V2), id2=pmax(V1, V2))]
    # get max of V3
    DT.OUT <- DT[, .SD[which.max(V3), ], by=list(id1, id2)]
    # remove the id1 and id2 columns
    DT.OUT[, c("id1", "id2") := NULL]
    
    #     V1  V2     V3
    # 1:   2   1    666
    # 2: 100 102  23131
    # 3:  10  19 124444
    # 4:  10  15   1244
    # 5: 100 110     23
    


    1. mysql_real_escape_stringでphpfilter_varを使用する

    2. PHPとMySQLデータベースからサブカテゴリのカテゴリを表示する方法

    3. groupbyを使用してテーブルから最後のレコードを選択します

    4. System.Data.OracleClientを使用してOracle10Gに大きなブロブを挿入するにはどうすればよいですか。