Advertisement
Guest User

Untitled

a guest
Sep 17th, 2019
100
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
SQL 1.96 KB | None | 0 0
  1. SELECT tic.*, sessions.session_id FROM (
  2.   SELECT
  3.     MAX("tf009_vte_ligticcai"."dat_tic") AS "dat_tic",  
  4.     "tf009_vte_ligticcai"."num_ett" AS "num_ett",
  5.     "tf009_vte_ligticcai"."num_cai" AS "num_cai",
  6.     "tf009_vte_ligticcai"."num_tic" AS "num_tic",
  7.     CAST("tf009_vte_ligticcai"."cod_cartfid" AS TEXT) AS "cod_cartfid",
  8.     SUM("tf009_vte_ligticcai"."mnt_ttcdevbu"),
  9.     AVG("tf009_vte_ligticcai"."prx_vtemag"),
  10.     COUNT("tf009_vte_ligticcai"."num_art"),
  11.     MAX("tf009_vte_ligticcai"."prx_vtemag"),
  12.     MIN("tf009_vte_ligticcai"."prx_vtemag")
  13.   FROM "td_idwh1_bv_prod_009_pbsdbs_ods"."tf009_vte_ligticcai" "tf009_vte_ligticcai"
  14.   WHERE ("tf009_vte_ligticcai"."mnt_ttcdevbu">0) AND ("tf009_vte_ligticcai"."top_clifid"=1) AND dat_tic > '2019-04-30'
  15.   GROUP BY "cod_cartfid", "num_ett", "num_cai", "num_tic"
  16. ) AS tic
  17. JOIN
  18. (
  19. SELECT *,
  20.                       SUM(is_new_session) OVER (ORDER BY cod_cartfid, dat_tic) session_id
  21.                FROM (SELECT *,
  22.                             CASE WHEN EXTRACT(DAYS FROM dat_tic - prev_dat) > 30 THEN 1 ELSE 0 END AS is_new_session
  23.                      FROM (SELECT cod_cartfid,
  24.                                   dat_tic,
  25.                                   num_ett,
  26.                                   num_cai,
  27.                                   num_tic,
  28.                                   mnt_ttcdevbu,
  29.                                   prx_vtemag,
  30.                                   num_art,
  31.                                   LAG(dat_tic, 1) OVER (PARTITION BY cod_cartfid ORDER BY dat_tic) AS prev_dat
  32.                            FROM "td_idwh1_bv_prod_009_pbsdbs_ods"."tf009_vte_ligticcai"
  33.                            WHERE cod_cartfid IS NOT NULL
  34.                              AND dat_tic > '2019-04-30') AS recent_tics) AS with_sesson_markers
  35. ) AS sessions ON (
  36.       tic.cod_cartfid = sessions.cod_cartfid
  37.   AND tic.num_ett = sessions.num_ett
  38.   AND tic.num_cai = sessions.num_cai
  39.   AND tic.num_tic = sessions.num_tic
  40. )
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement