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

値が混在するN行を選択

    SQLフィドルデモ

    ご覧のとおり、group_idを作成します したがって、group_id = 1 小さいTimeStampになります ポートごと

    2番目のフィールドはtime_idです したがって、ORDER BYで すべての1を選択した後 すべての2,3,4を持参してください どのポートでも。

       SELECT *
       FROM (
             SELECT *, 
                row_number() over (partition by "port" order by "insertTimeStamp") group_id,
                row_number() over (order by "insertTimeStamp") time_id
             FROM Table1 T
       ) as T
       ORDER BY CASE 
                   WHEN group_id = 1 THEN group_id
                   ELSE time_id
                END
       LIMIT 4
    

    出力

    | insertTimeStamp | port | data | group_id | time_id |
    |-----------------|------|------|----------|---------|
    |               1 |   20 |  aaa |        1 |       1 |
    |               2 |   21 |  aza |        1 |       3 |
    |              15 |   22 |  2aa |        1 |       8 |
    |               2 |   20 |  aba |        2 |       2 |
    


    1. 結合と順序のある個別のレコード

    2. ROracleパッケージをWindows7にインストールするにはどうすればよいですか?

    3. オペランドタイプの衝突:intは日付と互換性がありません+INSERTステートメントはFOREIGNKEY制約と競合しました

    4. MySql C ++コネクタgetString()は正しく機能しませんが、getIntは完全に機能します