Impala - Có mệnh đề
Các Having mệnh đề trong Impala cho phép bạn chỉ định các điều kiện lọc kết quả nhóm nào xuất hiện trong kết quả cuối cùng.
Nói chung, Having mệnh đề được sử dụng cùng với group bymệnh đề; nó đặt điều kiện cho các nhóm được tạo bởi mệnh đề GROUP BY.
Cú pháp
Sau đây là cú pháp của Havingmệnh đề.
select * from table_name ORDER BY col_name [ASC|DESC] [NULLS FIRST|NULLS LAST]
Thí dụ
Giả sử chúng ta có một bảng tên customers trong cơ sở dữ liệu my_db và nội dung của nó như sau:
[quickstart.cloudera:21000] > select * from customers;
Query: select * from customers
+----+----------+-----+-------------+--------+
| 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 |
| 5 | Hardik | 27 | Bhopal | 40000 |
| 6 | Komal | 22 | MP | 32000 |
| 7 | ram | 25 | chennai | 23000 |
| 8 | rahim | 22 | vizag | 31000 |
| 9 | robert | 23 | banglore | 28000 |
+----+----------+-----+-----------+--------+
Fetched 9 row(s) in 0.51s
Sau đây là một ví dụ về việc sử dụng Having mệnh đề trong Impala -
[quickstart.cloudera:21000] > select max(salary) from customers group by age having max(salary) > 20000;
Truy vấn này ban đầu nhóm bảng theo độ tuổi và chọn mức lương tối đa của mỗi nhóm và hiển thị các mức lương lớn hơn 20000 như hình dưới đây.
20000
+-------------+
| max(salary) |
+-------------+
| 30000 |
| 35000 |
| 40000 |
| 32000 |
+-------------+
Fetched 4 row(s) in 1.30s