Advertisement
mess9

Untitled

Nov 3rd, 2020
2,004
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
SQL 1.54 KB | None | 0 0
  1. -- селект для марины с поиском клиентов у которых есть charges
  2. SELECT
  3.     nls,
  4.     LOCALSYSTEMID,
  5.     APP_PKID,
  6.     version,
  7.     NUM_CHARGES
  8. FROM (
  9.     SELECT DISTINCT ---- получаем некоторое количество клиентов у которых num_charges начислений
  10.         c.nls,  
  11.         c.LOCALSYSTEMID AS LOCALSYSTEMID ,
  12.         c.app_pkid,
  13.         c.version,
  14.         (
  15.         SELECT COUNT(LOCALSYSTEMID) AS uniq_charges FROM (SELECT DISTINCT cr1.LOCALSYSTEMID FROM DWH6.charges cr1 WHERE cr1.CLIENT_APP_PKID = c.APP_PKID AND cr1.CLIENT_VERSION = 0 AND cr1.CLIENT_LOCALSYSTEMID = c.LOCALSYSTEMID)
  16.         ) AS num_charges      -- всего уникальных charges на клиенте
  17.     FROM
  18.         mdm6.CLIENT sample(0.005) c -- sample speed magic (для теста(0.5) и (пре)прода(0.0005) нужны разные значения)
  19.         INNER JOIN DWH6.charges cr2     -- подбирать значения sample нужно эмпирически. дабы и данные нашлись, и время запроса было адекватным
  20.             ON c.LOCALSYSTEMID = cr2.CLIENT_LOCALSYSTEMID
  21.             AND c.APP_PKID = cr2.CLIENT_APP_PKID
  22.             AND c.VERSION = cr2.CLIENT_VERSION
  23.     WHERE 1=1
  24.         AND c.VERSION = 0
  25.         AND c.DELETED = 0
  26.         AND c.ENDDATE > SYSDATE
  27.         AND REGEXP_LIKE(c.nls, '\d{12}')
  28.         AND c.app_pkid = 9
  29.     ORDER BY NUM_CHARGES DESC
  30.     )
  31. WHERE 1=1
  32.     AND NUM_CHARGES > 3
  33.     --AND rownum = 1
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement