Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- -- набор данных в метод /client/bills
- -- нужно получить такой nls у которого будет
- -- начислений > 3
- -- начислений с уникальными датами > 3
- -- начислений с уникальными сервис провайдерами > 2
- SELECT nls, num_bills, uniq_bill_date, uniq_serv_prov FROM (
- SELECT ---- получаем некоторое количество клиентов у которых num_bills начислений
- c.nls,
- c.LOCALSYSTEMID ,
- b.LOCALSYSTEMID ,
- b.BILLINGDATE ,
- ROW_NUMBER () OVER (PARTITION BY b.CLIENT_LOCALSYSTEMID ORDER BY b.LOCALSYSTEMID) NUM_BILLS, -- всего счетов на клиенте
- -- ROW_NUMBER () OVER (PARTITION BY b.CLIENT_LOCALSYSTEMID ORDER BY b.BILLINGDATE) NUM_BILLS_DATE, -- всего дат счетов на клиенте
- ( -- всего уникальных дат счетов на клиенте
- SELECT COUNT(BILLINGDATE) AS num_uniq_date FROM (
- SELECT DISTINCT
- b.BILLINGDATE
- FROM
- DWH6.BILLS b
- WHERE 1=1
- AND b.CLIENT_APP_PKID = 9 -- апппкид указывается 2 раза. тут
- AND b.CLIENT_VERSION = 0
- AND b.CLIENT_LOCALSYSTEMID = c.LOCALSYSTEMID
- )
- ) AS uniq_bill_date,
- ( -- всего уникальных сервис провайдеров счетов на клиенте
- SELECT COUNT(SERVICEPROVIDER_LOCALSYSTEMID) AS num_uniq_serv_prov FROM (
- SELECT DISTINCT
- b.SERVICEPROVIDER_LOCALSYSTEMID
- FROM
- DWH6.BILLS b
- WHERE 1=1
- AND b.CLIENT_APP_PKID = 9
- AND b.CLIENT_VERSION = 0
- AND b.CLIENT_LOCALSYSTEMID = c.LOCALSYSTEMID
- )
- ) AS uniq_serv_prov
- FROM
- mdm6.CLIENT sample(0.5) c -- sample speed magic (для теста(0.5) и (пре)прода(0.0005) нужны разные значения)
- INNER JOIN DWH6.BILLS b -- подбирать значения sample нужно эмпирически. дабы и данные нашлись, и время запроса было адекватным
- ON c.LOCALSYSTEMID = b.CLIENT_LOCALSYSTEMID
- AND c.APP_PKID = b.CLIENT_APP_PKID
- AND c.VERSION = b.CLIENT_VERSION
- WHERE 1=1
- AND c.VERSION = 0
- AND c.DELETED = 0
- AND c.ENDDATE > SYSDATE
- AND REGEXP_LIKE(c.nls, '\d{12}')
- AND c.APP_PKID = 9 -- и тут
- ORDER BY NUM_BILLS DESC
- ) WHERE 1=1
- AND uniq_bill_date > 3
- AND num_bills > 3
- AND uniq_serv_prov > 2
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement