- 表特定語句
- Impala - 建立表語句
- Impala - INSERT 語句
- Impala - SELECT 語句
- Impala - DESCRIBE 語句
- Impala - ALTER TABLE
- Impala - 刪除表
- Impala - TRUNCATE 表
- Impala - SHOW TABLES
- Impala - 建立檢視
- Impala - ALTER VIEW
- Impala - 刪除檢視
- Impala - 子句
- Impala - ORDER BY 子句
- Impala - GROUP BY 子句
- Impala - HAVING 子句
- Impala - LIMIT 子句
- Impala - OFFSET 子句
- Impala - UNION 子句
- Impala - WITH 子句
- Impala - DISTINCT 運算子
- Impala 有用資源
- Impala - 快速指南
- Impala - 有用資源
- Impala - 討論
Impala - OFFSET 子句
一般情況下,select 查詢結果集中的行從 0 開始。使用offset子句,我們可以決定從哪裡開始考慮輸出。例如,如果我們將偏移量選擇為 0,結果將和往常一樣;如果我們將偏移量選擇為 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 行開始列印前四行。
[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表中獲取四條記錄,如下所示。
[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
廣告