Impala-offset-clause
提供:Dev Guides
Impala-オフセット句
一般に、 select クエリの結果セットの行は0から始まります。 offset 句を使用して、出力をどこから考慮するかを決定できます。 たとえば、オフセットを0に選択した場合、結果は通常どおりになり、オフセットを5に選択した場合、結果は5行目から始まります。
構文
以下は、Impalaの* offset *句の構文です。
select data from table_name Group BY col_name;
例
データベース my_db に customers という名前のテーブルがあり、その内容は次のとおりであるとします-
[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