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

範囲の層化サンプル

    これは、各グループの少なくとも1つのレコードと、ランダムにさらに多くのレコードが必要であることを意味します。次に、これを試してください。

    SELECT GROUP, VALUE FROM
    (SELECT T2.GROUP, T2.VALUE, 
    ROW_NUMBER() 
    OVER (PARTITION BY T2.GROUP ORDER BY NULL) AS RN
    FROM TABLE_1 T1
    JOIN TABLE_2 T2
    ON(T1.RANGE = T2.GROUP))
    WHERE RN = 1 OR
    CASE WHEN RN > 1 
    AND RN = CEIL(DBMS_RANDOM.VALUE(1,RN))
    THEN 1 END = 1
    FETCH FIRST 10000 ROWS ONLY;
    

    ここでは、Rownum グループごとにランダムに取得され、結果はrownumを取得します。 1およびその他のrownum ランダムな条件を満たす場合。

    乾杯!!



    1. PostgreSQLのクエリエラーによって結果が返されません

    2. サブクエリJOINでの外部クエリへの参照

    3. 複数の区切り文字を含むSUBSTRING_INDEX

    4. MySQL:NULLから0への型キャスト