Impala-offset-clause

提供:Dev Guides
移動先:案内検索

Impala-オフセット句

一般に、 select クエリの結果セットの行は0から始まります。 offset 句を使用して、出力をどこから考慮するかを決定できます。 たとえば、オフセットを0に選択した場合、結果は通常どおりになり、オフセットを5に選択した場合、結果は5行目から始まります。

オフセット句

構文

以下は、Impalaの* offset *句の構文です。

select data from table_name Group BY col_name;

データベース my_dbcustomers という名前のテーブルがあり、その内容は次のとおりであるとします-

[quickstart.cloudera:21000] > select *from customers;
Query: select* from customers
+----+----------+-----+-----------+--------+
| id | name     | age | address   | salary |
+----+----------+-----+-----------+--------+
| 3  | kaushik  | 23  | Kota      | 30000  |
| 6  | Komal    | 22  | MP        | 32000  |
| 1  | Ramesh   | 32  | Ahmedabad | 20000  |
| 5  | Hardik   | 27  | Bhopal    | 40000  |
| 2  | Khilan   | 25  | Delhi     | 15000  |
| 8  | ram      | 22  | vizag     | 31000  |
| 9  | robert   | 23  | banglore  | 28000  |
| 7  | ram      | 25  | chennai   | 23000  |
| 4  | Chaitali | 25  | Mumbai    | 35000  |
+----+----------+-----+-----------+--------+
Fetched 9 row(s) in 0.51s

次のように limit 句と order by 句を使用して、テーブル内のレコードをIDの昇順で並べ替え、レコード数を4に制限できます。

Query: select * from customers order by id limit 4
+----+----------+-----+-----------+--------+
| id | name     | age | address   | salary |
+----+----------+-----+-----------+--------+
| 1  | Ramesh   | 32  | Ahmedabad | 20000  |
| 2  | Khilan   | 25  | Delhi     | 15000  |
| 3  | kaushik  | 23  | Kota      | 30000  |
| 4  | Chaitali | 25  | Mumbai    | 35000  |
+----+----------+-----+-----------+--------+
Fetched 4 row(s) in 0.64s

以下は、 offset 句の例です。 ここでは、IDの順序で customers テーブルのレコードを取得し、0 ^ th ^行から始まる最初の4行を出力しています。

[quickstart.cloudera:21000] > select *from customers order by id limit 4 offset 0;

実行すると、上記のクエリは次の結果を返します。

Query: select* from customers order by id limit 4 offset 0
+----+----------+-----+-----------+--------+
| id | name     | age | address   | salary |
+----+----------+-----+-----------+--------+
| 1  | Ramesh   | 32  | Ahmedabad | 20000  |
| 2  | Khilan   | 25  | Delhi     | 15000  |
| 3  | kaushik  | 23  | Kota      | 30000  |
| 4  | Chaitali | 25  | Mumbai    | 35000  |
+----+----------+-----+-----------+--------+
Fetched 4 row(s) in 0.62s

同様に、以下に示すように、オフセット5を持つ行から始まる customers テーブルから4つのレコードを取得できます。

[quickstart.cloudera:21000] > select *from customers order by id limit 4 offset 5;
Query: select* from customers order by id limit 4 offset 5
+----+--------+-----+----------+--------+
| id | name   | age | address  | salary |
+----+--------+-----+----------+--------+
| 6  | Komal  | 22  | MP       | 32000  |
| 7  | ram    | 25  | chennai  | 23000  |
| 8  | ram    | 22  | vizag    | 31000  |
| 9  | robert | 23  | banglore | 28000  |
+----+--------+-----+----------+--------+
Fetched 4 row(s) in 0.52s