Apache Presto - Toán tử và hàm có sẵn trong SQL

    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

Nguồn: Viblo

Bình luận
Vui lòng đăng nhập để bình luận
Một số bài viết liên quan