PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

Làm cách nào để viết truy vấn postgres này trong Amazon redshift sao cho nó được tối ưu hóa như trong postgres?

Việc tối ưu hóa truy vấn Redshift đến từ Cluster, Table Design, DataLoading, Data Vacuuming &Analysis trên bảng.

Hãy để tôi trả lời một số điểm tiếp xúc cốt lõi trong danh sách trên. Đảm bảo rằng bảng của bạn, bảng chi tiết, máy khách có SORT_KEY, DIST_KEY2 thích hợp. Đảm bảo rằng tất cả các bàn của bạn tham gia đều được kiểm tra và tiêm phòng đúng cách.

Đây là một phiên bản khác của SQL tương tự của bạn được viết ở định dạng Redshift.

Một số tinh chỉnh tôi đã thực hiện

  1. Đã sử dụng "Với mệnh đề" để tính toán cấp độ Cụm được tối ưu hóa
  2. Đã sử dụng Tham gia đúng cách và đảm bảo kết hợp trái / phải dựa trên dữ liệu.
  3. Đã sử dụng date_range với bảng mệnh đề cho loại hướng đối tượng.
  4. Nhóm By được sử dụng trong SQL chính bên dưới.

Phiên bản Redshift SQL của tôi

/** Date Range Computation **/
with date_range as (
    select ( current_Date - interval '2 weeks' ) as two_weeks
),
/** Filter main ResultSet**/
myGroupSet as (
    SELECT b.val AS myGroup,
           c.username,
           a.someCode,
           a.timeTaken,
           (case when (b.name == 'name1') THEN b.val::INTEGER ELSE 0 END ) as name11,
           (case when (b.name == 'name2') THEN b.val::INTEGER ELSE 0 END ) as name12
      FROM database.myTable a,
      join date_range dr on a.date > dr.two_weeks
      join database.detail b on b.id = a.id
      join database.client c on c.c_id = a.c_id
     where a.date > current_Date - interval '2 weeks'
)
/** Apply Aggregation **/
select myGroup, username, someCode, timeTaken, date,
       sum(name1), sum(name2)
  from myGroupSet
  group by myGroup, username, someCode, timeTaken, date



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Postgresql SAO CHÉP VÀO STDIN Với CSV thực hiện trên conflic làm cập nhật như thế nào?

  2. Heroku Rails Rake Task để Sync Production &Local DB

  3. Truy vấn SQL 6 độ phân tách để phân tích mạng

  4. Toán tử chính xác để so sánh giữa `bigint` và` date` trong postgresql là gì?

  5. Tôi có thể tự động tạo bảng trong PostgreSQL từ tệp csv có tiêu đề không?