Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- SELECT tic.*, sessions.session_id FROM (
- SELECT
- MAX("tf009_vte_ligticcai"."dat_tic") AS "dat_tic",
- "tf009_vte_ligticcai"."num_ett" AS "num_ett",
- "tf009_vte_ligticcai"."num_cai" AS "num_cai",
- "tf009_vte_ligticcai"."num_tic" AS "num_tic",
- CAST("tf009_vte_ligticcai"."cod_cartfid" AS TEXT) AS "cod_cartfid",
- SUM("tf009_vte_ligticcai"."mnt_ttcdevbu"),
- AVG("tf009_vte_ligticcai"."prx_vtemag"),
- COUNT("tf009_vte_ligticcai"."num_art"),
- MAX("tf009_vte_ligticcai"."prx_vtemag"),
- MIN("tf009_vte_ligticcai"."prx_vtemag")
- FROM "td_idwh1_bv_prod_009_pbsdbs_ods"."tf009_vte_ligticcai" "tf009_vte_ligticcai"
- WHERE ("tf009_vte_ligticcai"."mnt_ttcdevbu">0) AND ("tf009_vte_ligticcai"."top_clifid"=1) AND dat_tic > '2019-04-30'
- GROUP BY "cod_cartfid", "num_ett", "num_cai", "num_tic"
- ) AS tic
- JOIN
- (
- SELECT *,
- SUM(is_new_session) OVER (ORDER BY cod_cartfid, dat_tic) session_id
- FROM (SELECT *,
- CASE WHEN EXTRACT(DAYS FROM dat_tic - prev_dat) > 30 THEN 1 ELSE 0 END AS is_new_session
- FROM (SELECT cod_cartfid,
- dat_tic,
- num_ett,
- num_cai,
- num_tic,
- mnt_ttcdevbu,
- prx_vtemag,
- num_art,
- LAG(dat_tic, 1) OVER (PARTITION BY cod_cartfid ORDER BY dat_tic) AS prev_dat
- FROM "td_idwh1_bv_prod_009_pbsdbs_ods"."tf009_vte_ligticcai"
- WHERE cod_cartfid IS NOT NULL
- AND dat_tic > '2019-04-30') AS recent_tics) AS with_sesson_markers
- ) AS sessions ON (
- tic.cod_cartfid = sessions.cod_cartfid
- AND tic.num_ett = sessions.num_ett
- AND tic.num_cai = sessions.num_cai
- AND tic.num_tic = sessions.num_tic
- )
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement