问题描述
我正在尝试创建一个包含订单表中可疑订单的视图。
可疑订单的条件是,每个新订单(间隔内)都具有“新客户”标签,并使用表_sdc_sequence
中的折扣代码(orders__discount_codes
)以及邮政编码或电话在该时间间隔之前匹配的客户数量。
我的尝试是
CREATE OR REPLACE VIEW schema.old_orders_view AS
SELECT odr.id,odr.customer__id,odr.name,odr.billing_address__phone,odr.shipping_address__zip,odr.order_number,odr.updated_at
FROM schema.orders odr,schema.orders__discount_codes odc
WHERE odr._sdc_sequence=odc._sdc_sequence
AND
odr.updated_at<Now() - interval '2 day'
AND
odr.tags LIKE'%New Customer%'
AND
odr.cancelled_at is null
AND
odr.confirmed ='t';
- 创建了一个包含新订单的视图(在2天内)
CREATE OR REPLACE VIEW schema.new_orders_view AS
SELECT odr.id,schema.orders__discount_codes odc
WHERE odr._sdc_sequence=odc._sdc_sequence
AND
odr.updated_at>=Now() - interval '2 day'
AND
odr.tags LIKE'%New Customer%'
AND
odr.cancelled_at is null
AND
odr. confirmed ='t';
- 后来内心加入了他们
CREATE OR REPLACE VIEW schema.suspicIoUs_orders_view AS
SELECT n_odr.customer__id new_customer__id,n_odr.name new_name,o_odr.customer__id old_customer__id,o_odr.name old_name,o_odr.updated_at old_updated_at,n_odr.updated_at new_updated_at,o_odr.id old_id,n_odr.id new_id
FROM
schema.new_orders_view n_odr,schema.old_orders_view o_odr
WHERE
o_odr.billing_address__phone=n_odr.billing_address__phone
OR
o_odr.shipping_address__zip=n_odr.shipping_address__zip;
我需要的是第三个视图(suspicIoUs_orders_view
)。
有什么方法可以优化这些查询?该表包含多个100K记录。每天new_orders_view
中有50-100条新记录
如果查询没有两个虚拟视图,则更好(如果无法优化,则效果也很好)。
我已在我的应用程序中使用过此功能,并尝试与google data studio
连接
错误
错误:
Unable to Connect Host: An I/O error occurred while sending to the backed.
因此,优化查询会更合适。
我正在使用Postgresql 10。
任何帮助将不胜感激。预先谢谢你。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)