SQL Like thì chính xác hơn vì cú pháp của SQL trong Google Sheets chưa thực sự giống.
Cấu trúc cơ bản gồm: =QUERY(“vùng chọn”; “SQL-like”, 1), 1 là lấy cả header, hoặc 0 nếu bỏ qua header.
Xem ảnh sau:

Lệnh trên còn dùng hàm UNIQUE của Google Sheets để lấy dữ liệu distinct, do SQL của Google Sheets không hỗ trợ hàm DISTINCT. Cú pháp SQL đơn giản. Mình đã đặt tên cho bảng dữ liệu này thành sqlrange (Chọn 1 vùng dữ liệu, vào Data -> Name range).
Thông thường thì mình có thể nhét vào đây tên của sheet hiện tại và vùng chọn. Ví dụ ảnh sau, mình query dữ liệu trên một sheet khác. Mình vẫn có thể dùng name cho range trên sheet gốc từ sheet mới.

Thử với DISTINCT của SQL thì lại không được:

Trong ảnh trên, mình đã thay tên của sqlrange bằng tên của chính sheet hiện tại và dùng chọn dữ liệu, bắt đầu với !.
Giờ thử bỏ DISTINCT để xem thế nào, thêm LIMIT, đổi vùng chọn một chút để lấy cả header:

Giờ mình thêm ORDER BY

Thử với hàm COUNT
Mình dùng thử count để đếm xem sao, kết hợp với GROUP BY:
Với SQL này, mình muốn đếm xem có bao nhiêu nước tính theo cột C.

Giờ mình sẽ tạo một cột mới, tạm gọi đã trả tiền hay chưa vào chọn cột này để lập nhóm, vẫn đếm cột A:

Thử với AND và OR

Dùng các hàm kết hợp trong câu lệnh SQL:
