Skip to content

Instantly share code, notes, and snippets.

@snoble
Created February 16, 2012 23:24
Show Gist options
  • Save snoble/1848714 to your computer and use it in GitHub Desktop.
Save snoble/1848714 to your computer and use it in GitHub Desktop.
one more idea
create table internal.fedex_bad1 AS
select o1.order_id, o1.shipping_address_id, o1.created_at, o1.email
from orders o1
JOIN addresses a ON (o1.shipping_address_id = a.address_id)
JOIN internal.address_hashes ah ON (ah.address_id = a.address_id)
where
o1.financial_status = 'paid'
AND o1.created_at >= '2010-07-01'
AND o1.created_at <= '2011-07-01'
AND NOT EXISTS (
select o2.order_id from orders o2
WHERE o1.order_id <> o2.order_id
and o2.created_at > o1.created_at
and o1.customer_id = o2.customer_id
)
create table internal.fedex_bad2 AS
select o1.order_id, o1.shipping_address_id, o1.created_at
from internal.fedex_bad1 o1
JOIN addresses a ON (o1.shipping_address_id = a.address_id)
JOIN internal.address_hashes ah ON (ah.address_id = a.address_id)
where
o1.created_at >= '2010-07-01'
AND o1.created_at <= '2011-07-01'
AND NOT EXISTS (
select o2.order_id from orders o2
WHERE o1.order_id <> o2.order_id
and o2.created_at > o1.created_at
and o1.email = o2.email
)
create table internal.fedex_bads AS
select o1.order_id
from internal.fedex_bad2 o1
JOIN addresses a ON (o1.shipping_address_id = a.address_id)
JOIN internal.address_hashes ah ON (ah.address_id = a.address_id)
where
o1.financial_status = 'paid'
AND o1.created_at >= '2010-07-01'
AND o1.created_at <= '2011-07-01'
AND NOT EXISTS (
select o2.order_id from orders o2
JOIN addresses a2 ON (o2.shipping_address_id = a2.address_id)
JOIN internal.address_hashes ah2 ON (ah2.address_id = a2.address_id)
WHERE o1.order_id <> o2.order_id
and o2.created_at > o1.created_at
and (ah.hash = ah2.hash)
)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment