Advertisement
tyomasun

Просроченные лиды

Feb 8th, 2016
111
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
SQL 3.03 KB | None | 0 0
  1. SET search_path = _00000003, public;
  2.  
  3. /*
  4. CREATE INDEX "iЛид-РегламентПодразделениеНовые_tmp2"
  5.   ON _00000003."Лид"
  6.   USING btree
  7.   ("Регламент", "Подразделение", "СозданиеДата" DESC NULLS LAST)
  8.   WHERE "Черновик" IS NULL AND "ПоследнийКонтакт" IS NULL;
  9. */
  10.  
  11. EXPLAIN (analyze, buffers)
  12.  
  13. WITH dept AS (
  14.    WITH RECURSIVE sp AS (
  15.       SELECT
  16.          x."@Лицо" "Лицо",
  17.          x."Раздел",
  18.          x."Название",
  19.          x."Раздел@",
  20.          x."Тип"
  21.       FROM
  22.          "СтруктураПредприятия" x
  23.       WHERE
  24.          x."Тип" = 0
  25.           AND "@Лицо" = 14466736
  26.       UNION ALL
  27.       SELECT
  28.          z."@Лицо" "Лицо",
  29.          z."Раздел",
  30.          z."Название",
  31.          z."Раздел@",
  32.          z."Тип"
  33.       FROM
  34.          "СтруктураПредприятия" z
  35.       INNER JOIN sp y ON z."Раздел" = y."Лицо" AND z."Тип" = y."Тип"
  36.       WHERE
  37.          z."$Черновик" IS NULL AND z."ДатаЗакрытия" IS NULL
  38.    )
  39.    SELECT "Лицо", "Раздел", "Название", "Раздел@" FROM sp
  40. ),
  41.  
  42. theme AS (
  43.    WITH RECURSIVE regs AS (
  44.       SELECT
  45.          x."@Регламент" "Регламент",
  46.          x."Раздел",
  47.          x."Раздел@",
  48.          x."Название",
  49.          x."Флаги",
  50.          x."Лимит",
  51.          x."Порядок",
  52.          x."Норма",
  53.          x."Флаги"[3] "Удален"
  54.       FROM "Регламент" x
  55.       WHERE
  56.          x."Идентификатор" = '8992e41a-a499-11e1-8c02-63ba74c41964'
  57.       UNION ALL
  58.       SELECT
  59.          y."@Регламент" "Регламент",
  60.          y."Раздел",
  61.          y."Раздел@",
  62.          y."Название",
  63.          y."Флаги",
  64.          y."Лимит",
  65.          y."Порядок",
  66.          y."Норма",
  67.          y."Флаги"[3] "Удален"
  68.       FROM regs z
  69.          INNER JOIN "Регламент" y ON z."Регламент" = y."Раздел"
  70.    )
  71.  
  72.    SELECT *
  73.    FROM regs
  74.    WHERE  
  75.       "Удален" IS NOT TRUE  AND  
  76.       "Раздел@" IS NOT TRUE
  77. )
  78.      
  79. SELECT
  80.    COUNT((a)) kol
  81. FROM (
  82.    SELECT
  83.       unnest(ARRAY(
  84.          SELECT
  85.             unnest(ARRAY(
  86.                SELECT ld
  87.                FROM "Лид" ld
  88.                WHERE
  89.                   ld."Черновик" IS NULL AND
  90.                   ld."ПоследнийКонтакт" IS NULL AND
  91.                   ld."Регламент" = t."Регламент" AND
  92.                   ld."Подразделение" = d."Лицо" AND
  93.                   ld."СозданиеДата" >= (date_trunc('day', now()) - '2 years'::INTERVAL)::DATE AND
  94.                   ld."СозданиеДата" < (date_trunc('day', now())::DATE - t."Лимит")::DATE
  95.             )) a
  96.          FROM theme t
  97.          WHERE t."Лимит" IS NOT NULL
  98.       )) a
  99.    FROM dept d
  100. ) t
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement