Apache Presto - Toán tử và hàm có sẵn trong SQL
Bài đăng này đã không được cập nhật trong 3 năm
Trước khi bắt đầu bước vào thực hành về Presto, chúng ta nên biết cơ bản những dữ liệu, hàm có sẵn do Presto cung cấp, để tránh những lỗi cơ bản về kiểu dữ liệu, cũng như việc ''nhu nhốc" như build lại một hàm đã có sẵn.
Dạng dữ liệu cơ bản
TT | Kiểu dữ liệu và mô tả |
---|---|
1. | VARCHAR Dữ liệu ký tự có độ dài thay đổi |
2. | BIGINT Một số nguyên có dấu 64 bit |
3. | DOUBLE Đây là kiểu số thực, dùng để chứa những số có dấu phẩy động 64 bit. |
4. | DECIMAL Một số thập phân chính xác cố định. Ví dụ: DECIMAL (10,3) - 10 là độ chính xác, tức là tổng số chữ số và 3 là giá trị tỷ lệ được biểu thị dưới dạng điểm phân số. Tỷ lệ tùy chọn và giá trị mặc định là 0 |
5. | BOOLEAN Giá trị Boolean true hoặc false |
6. | VARBINARY Dữ liệu nhị phân có độ dài thay đổi |
7. | JSON JSON data |
8. | DATE Kiểu dữ liệu ngày tháng được biểu thị dưới dạng year-month-day |
9. | TIME, TIMESTAMP, TIMESTAMP với TIME ZONE TIME - Thời gian trong ngày (hour-min-sec-millisecond) TIMESTAMP - Ngày và thời gian trong ngày TIMESTAMP với TIME ZONE - Ngày và giờ trong ngày với giá trị múi giờ |
10. | INTERVAL Kéo dài các loại dữ liệu ngày và giờ |
11. | ARRAY Mảng của kiểu thành phần đã cho. Ví dụ: ARRAY [5,7] |
12. | MAP Ánh xạ giữa các loại thành phần đã cho. Ví dụ: MAP (ARRAY [‘one’, ’two’], ARRAY [5,7]) |
13. | ROW Cấu trúc hàng được tạo thành từ các trường được đặt tên |
Presto - Toán tử
Các toán tử Presto được liệt kê trong bảng sau.
TT | Toán tử & mô tả |
---|---|
1. | Toán tử số học Presto hỗ trợ các toán tử số học như +, -, *, /, % |
2. | Toán tử quan hệ <,>,<=,>=,=,<> |
3. | Toán tử logic AND, OR, NOT |
4. | Toán tử phạm vi Toán tử phạm vi được sử dụng để kiểm tra giá trị trong một phạm vi cụ thể. Presto hỗ trợ BETWEEN, IS NULL, IS NOT NULL, GREATEST và LEAST |
5. | Toán tử thập phân Toán tử thập phân số học nhị phân thực hiện phép toán số học nhị phân cho kiểu thập phân Toán tử thập phân Unary - Toán tử thực hiện phủ định |
6. | Toán tử chuỗi Toán tử || thực hiện nối chuỗi |
7. | Toán tử ngày và giờ Thực hiện các phép tính cộng và trừ số học trên các kiểu dữ liệu ngày và giờ |
8. | Toán tử mảng Toán tử chỉ số con [] - truy cập một phần tử của một mảng Toán tử kết hợp || - nối một mảng với một mảng hoặc một phần tử cùng kiểu |
9. | Toán tử ánh xạ Toán tử chỉ số map [] - truy xuất giá trị tương ứng với một khóa nhất định từ map |
Hàm toán học
TT | Hàm và mô tả |
---|---|
1. | abs(x) Trả về giá trị tuyệt đối của x |
2. | cbrt(x) Trả về căn bậc hai của x |
3. | ceiling(x) Trả về giá trị x được làm tròn đến số nguyên gần nhất |
4. | ceil(x) Tương tự ceiling(x) |
5. | degrees(x) Trả về giá trị độ cho x |
6. | e(x) Trả về giá trị lũy thừa cho số của Euler |
7. | exp(x) Trả về giá trị lũy thừa cho số của Euler |
8. | floor(x) Trả về x làm tròn xuống số nguyên gần nhất |
9. | from_base(string,radix) Trả về giá trị của chuỗi được hiểu là số base-radix |
10. | ln(x) Trả về lôgarit tự nhiên của x |
11. | log2(x) Trả về logarit cơ số 2 của x |
12. | log10(x) Trả về logarit cơ số 10 của x |
13. | log(x,y) Trả về logarit cơ số y của x |
14. | mod(n,m) Trả về môđun (phần dư) của n chia cho m |
15. | pi() Trả về giá trị pi. Kết quả sẽ được trả về dưới dạng giá trị kép |
16. | power(x,p) Trả về lũy thừa của giá trị ‘p’ cho giá trị x |
17. | pow(x,p) Tương tự power(x,p) |
18. | radians(x) chuyển đổi góc x theo độ radian |
19. | rand() Tương tự radians() |
20. | random() Trả về giá trị giả ngẫu nhiên |
21. | rand(n) Tương tự random() |
22. | round(x) Trả về giá trị làm tròn cho x |
23. | round(x,d) Giá trị x được làm tròn cho các chữ số thập phân ‘d’ |
24. | sign(x) Trả về hàm dấu hiệu của x, tức là, 0 nếu đối số là 0 1 nếu đối số lớn hơn 0 -1 nếu đối số nhỏ hơn 0 Đối với các đối số kép, hàm cũng trả về: NaN nếu đối số là NaN 1 nếu đối số là + Vô cực -1 nếu đối số là - vô cực |
25. | sqrt(x) Trả về căn bậc hai của x |
26. | to_base(x,radix) Kết quả được trả về dưới dạng cơ số cho x |
27. | truncate(x) Cắt bớt giá trị cho x |
28. | width_bucket(x, bound1, bound2, n) Trả về số bin của x được chỉ định giới hạn bound1 và giới hạn bound2 và n số nhóm |
29. | width_bucket(x, bins) Trả về số bin của x theo các bin được chỉ định bởi các bin mảng |
Hàm lượng giác
TT | Hàm và mô tả |
---|---|
1. | acos(x) Trả về giá trị cosine nghịch đảo (x) |
2. | asin(x) Trả về giá trị sin nghịch đảo (x) |
3. | atan(x) Trả về giá trị tiếp tuyến nghịch đảo (x) |
4. | atan2(y,x) Trả về giá trị tiếp tuyến nghịch đảo (y / x) |
5. | cos(x) Trả về giá trị cosine (x) |
6. | cosh(x) Trả về giá trị cosin hyperbol (x) |
7. | sin(x) Trả về giá trị sin (x) |
8. | tan(x) Trả về giá trị tiếp tuyến (x) |
9. | tanh(x) Trả về giá trị tiếp tuyến hyperbol (x) |
Hàm bitwise
TT | Hàm và mô tả |
---|---|
1. | bit_count(x, bits) Đếm số bit |
2. | bitwise_and(x,y) Thực hiện thao tác bitwise AND cho hai bit, x và y |
3. | bitwise_or(x,y) Phép toán theo chiều bit OR giữa hai bit x, y |
4. | bitwise_not(x) Bitwise Không hoạt động cho bit x |
5. | bitwise_xor(x,y) Phép toán XOR cho các bit x, y |
Hàm chuỗi
TT | Hàm và mô tả |
---|---|
1. | concat(string1, ..., stringN) Nối các chuỗi đã cho |
2. | length(string) Trả về độ dài của chuỗi đã cho |
3. | lower(string) Trả về định dạng chữ thường cho chuỗi |
4. | upper(string) Trả về định dạng chữ hoa cho chuỗi đã cho |
5. | lpad(string, size, padstring) Khoảng đệm bên trái cho chuỗi đã cho |
6. | ltrim(string) Loại bỏ khoảng trắng đầu chuỗi khỏi chuỗi |
7. | replace(string, search, replace) Thay thế giá trị chuỗi |
8. | reverse(string) Đảo ngược hoạt động được thực hiện cho chuỗi |
9. | rpad(string, size, padstring) Khoảng đệm bên phải cho chuỗi đã cho |
10. | rtrim(string) Loại bỏ khoảng trắng ở cuối chuỗi khỏi chuỗi |
11. | split(string, delimiter) Tách chuỗi trên dấu phân cách và trả về một mảng có kích thước ở giới hạn lớn nhất |
12. | split_part(string, delimiter, index) Tách chuỗi trên dấu phân cách và trả về chỉ mục trường |
13. | strpos(string, substring) Trả về vị trí bắt đầu của chuỗi con trong chuỗi |
14. | substr(string, start) Trả về chuỗi con cho chuỗi đã cho |
15. | substr(string, start, length) Trả về chuỗi con cho chuỗi đã cho với độ dài cụ thể |
16. | trim(string) Loại bỏ khoảng trắng đầu và cuối khỏi chuỗi |
Hàm ngày và thời gian
TT | Hàm và mô tả |
---|---|
1. | current_date Trả về ngày hiện tại |
2. | current_time Trả về thời gian hiện tại |
3. | current_timestamp Trả về mốc thời gian hiện tại |
4. | current_timezone() Trả về múi giờ hiện tại |
5. | now() Trả về ngày hiện tại, dấu thời gian với múi giờ |
6. | localtime Trả về giờ địa phương |
7. | localtimestamp Trả về mốc thời gian địa phương |
Hàm biểu thức chính quy
TT | Hàm và mô tả |
---|---|
1. | regexp_extract_all(string, pattern) Trả về chuỗi được so khớp bởi biểu thức chính quy cho mẫu |
2. | regexp_extract_all(string, pattern, group) Trả về chuỗi được so khớp bởi biểu thức chính quy cho mẫu và nhóm |
3. | regexp_extract(string, pattern) Trả về chuỗi con đầu tiên được so khớp bởi biểu thức chính quy cho mẫu |
4. | regexp_extract(string, pattern, group) Trả về chuỗi con đầu tiên được so khớp bởi biểu thức chính quy cho mẫu và nhóm |
5. | regexp_like(string, pattern) Trả về các kết quả phù hợp với chuỗi cho mẫu. Nếu chuỗi được trả về, giá trị sẽ là true, ngược lại là false |
6. | regexp_replace(string, pattern) Thay thế phiên bản của chuỗi được so khớp cho biểu thức bằng mẫu |
7. | regexp_replace(string, pattern, replacement) Thay thế phiên bản của chuỗi được so khớp cho biểu thức bằng mẫu và thay thế |
8. | regexp_split(string, pattern) Tách biểu thức chính quy cho mẫu đã cho |
Hàm Json
TT | Hàm và mô tả |
---|---|
1. | concat(string1, ..., stringN) Nối các chuỗi đã cho |
2. | length(string) Trả về độ dài của chuỗi đã cho |
3. | lower(string) Trả về định dạng chữ thường cho chuỗi |
4. | upper(string) Trả về định dạng chữ hoa cho chuỗi đã cho |
5. | lpad(string, size, padstring) Khoảng đệm bên trái cho chuỗi đã cho |
6. | ltrim(string) Loại bỏ khoảng trắng đầu chuỗi khỏi chuỗi |
Hàm url
TT | Hàm và mô tả |
---|---|
1. | url_extract_host(url) Trả về URL host |
2. | url_extract_path(url) Trả về URL path |
3. | url_extract_port(url) Trả về URL port |
4. | url_extract_protocol(url) Trả về URL protocol |
5. | url_extract_query(url) Trả về chuỗi truy vấn của URL |
Hàm tổng hợp
TT | Hàm và mô tả |
---|---|
1. | avg(x) Trả về giá trị trung bình cho giá trị đã cho |
2. | min(x,n) Trả về giá trị nhỏ nhất từ hai giá trị |
3. | max(x,n) Trả về giá trị lớn nhất từ hai giá trị |
4. | sum(x) Trả về tổng giá trị |
5. | count(*) Trả về số hàng đầu vào |
6. | count(x) Trả về số lượng giá trị đầu vào |
7. | checksum(x) Trả về tổng kiểm tra cho x |
8. | arbitrary(x) Trả về giá trị tùy ý cho x |
Hàm color
TT | Hàm và mô tả |
---|---|
1. | bar(x, width) Hiển thị một thanh đơn bằng cách sử dụng rgb low_color và high_color |
2. | bar(x, width, low_color, high_color) Hiển thị một thanh đơn cho chiều rộng được chỉ định |
3. | color(string) Trả về giá trị màu cho chuỗi đã nhập |
4. | render(x, color) Hiển thị giá trị x bằng cách sử dụng màu cụ thể bằng mã màu ANSI |
5. | render(b) Chấp nhận giá trị boolean b và hiển thị màu xanh lá cây đúng hoặc màu đỏ sai bằng cách sử dụng mã màu ANSI |
6. | rgb(red, green, blue) Trả về giá trị màu ghi lại giá trị RGB của ba giá trị màu thành phần được cung cấp dưới dạng tham số int từ 0 đến 255 |
Hàm mảng
TT | Hàm và mô tả |
---|---|
1. | array_max(x) Tìm phần tử tối đa trong một mảng |
2. | array_min(x) Tìm phần tử min trong một mảng |
3. | array_sort(x) Sắp xếp các phần tử trong một mảng |
4. | array_remove(x,element) Xóa phần tử cụ thể khỏi một mảng |
5. | concat(x,y) Nối hai mảng |
6. | contains(x,element) Tìm các phần tử đã cho trong một mảng. True sẽ được trả về nếu nó hiện diện, ngược lại false |
7. | array_position(x,element) Tìm vị trí của phần tử đã cho trong một mảng |
8. | array_intersect(x,y) Thực hiện sự giao nhau giữa hai mảng |
9. | element_at(array,index) Trả về vị trí phần tử mảng |
10. | slice(x,start,length) Cắt các phần tử mảng với độ dài cụ thể |
Hàm teradata
TT | Hàm và mô tả |
---|---|
1. | index(string,substring) Trả về chỉ mục của chuỗi với chuỗi con đã cho |
2. | substring(string,start) Trả về chuỗi con của chuỗi đã cho. Bạn có thể chỉ định chỉ mục bắt đầu tại đây |
3. | substring(string,start,length) Trả về chuỗi con của chuỗi đã cho cho chỉ số bắt đầu cụ thể và độ dài của chuỗi |
All rights reserved