ClickHouse/docs/ja/sql-reference/statements/select/limit.md
2024-11-18 11:58:58 +09:00

1.9 KiB

slug sidebar_label
/ja/sql-reference/statements/select/limit LIMIT

LIMIT句

LIMIT mを使用すると、結果から最初のm行を選択できます。

LIMIT n, mを使用すると、最初のn行をスキップした後の結果からm行を選択できます。LIMIT m OFFSET nの構文はこれと同等です。

nmは非負整数でなければなりません。

結果を明示的にソートするORDER BY句がない場合、結果に選ばれる行は任意で非決定的なものになる可能性があります。

:::note
結果セット内の行数は、limit設定にも依存する場合があります。 :::

LIMIT ... WITH TIES修飾子

LIMIT n[,m]WITH TIES修飾子を設定し、ORDER BY expr_listを指定した場合、LIMIT nで指定した位置nまたはLIMIT n,mで指定した位置mにある行と同じORDER BYフィールドの値を持つすべての行と、最初のnまたはn,m行を結果として取得します。

この修飾子は、ORDER BY ... WITH FILL修飾子とも組み合わせることができます。

例えば、次のクエリ

SELECT * FROM (
    SELECT number%50 AS n FROM numbers(100)
) ORDER BY n LIMIT 0,5

は、次の結果を返します。

┌─n─┐
│ 0 │
│ 0 │
│ 1 │
│ 1 │
│ 2 │
└───┘

しかし、WITH TIES修飾子を適用すると

SELECT * FROM (
    SELECT number%50 AS n FROM numbers(100)
) ORDER BY n LIMIT 0,5 WITH TIES

別の行セットが返されます。

┌─n─┐
│ 0 │
│ 0 │
│ 1 │
│ 1 │
│ 2 │
│ 2 │
└───┘

これは、行番号6がフィールドnに対して行番号5と同じ値「2」を持っているためです。