Hive 使用 LIMIT 指定偏移量返回数据
LIMIT 子句可用于限制SELECT语句返回的行数。
LIMIT 接受一个或两个数字参数,这两个参数必须都是非负整数常量。第一个参数指定要返回的第一行的偏移量(从Hive 2.0.0开始),第二个参数指定要返回的最大行数。当只提供一个参数时,它表示最大行数,偏移量默认为0。
下面给出测试示例:
1. 创建student_scores表,添加测试数据
c
CREATE TABLE student_scores
(
id INT,
name STRING,
score INT,
group_name STRING
);
INSERT OVERWRITE TABLE student_scores
VALUES (1, 'Jack', 96, 'A组'),
(2, 'John', 90, 'A组'),
(5, 'Lucy', 97, 'A组'),
(4, 'Caocao', 96, 'B组'),
(3, 'Lvbu', 99, 'B组');
2. 限制返回的行数为3行,从第1行开始
c
SELECT * FROM student_scores ORDER BY id
LIMIT 3;
执行结果:
| id | name | score | group_name |
|----|--------|-------|------------|
| 1 | Jack | 96 | A组 |
| 2 | John | 90 | A组 |
| 3 | Lvbu | 99 | B组 |
3. 限制返回的行数为5行,从第4行开始
c
SELECT * FROM student_scores ORDER BY id
LIMIT 3, 5;
执行结果:
| id | name | score | group_name |
|----|---------|-------|------------|
| 4 | Caocao | 96 | B组 |
| 5 | Lucy | 97 | A组 |
在上面的SQL示例中:
- 第一个查询将返回 student_scores 表的前3行数据。
- 第二个查询将返回 student_scores 表的第4行开始的5行数据,由于从第4行开始向后只有2行数据,所以最终返回的是2行数据。