postgresql 搜索拒绝后自动释放的客户端

h5qlskok  于 2023-06-22  发布在  PostgreSQL
关注(0)|答案(1)|浏览(132)

我感兴趣的情况是,验证器拒绝了一个客户端,然后同一个客户端在另一个应用程序上收到了自动批准。我有一个包含请求的表,所有请求都有一个person_id。我们的想法是,一个客户端可能已经创建了10个应用程序,其中9次他被拒绝,10次他被自动批准,所以首先我需要找到被拒绝的客户端组,然后在另一个应用程序上找到被自动批准的客户端。您还需要使closed_agreement字段匹配,因为否则您可能会意外地调出另一个贷款申请。
请给予我建议该怎么做

WITH rejected_customers AS (
  SELECT person_id
  FROM application
  WHERE status_id = 9 -- rejection
  AND decision_code in (9185, 479, 481, 483, 487, 480) -- reasons for rejection 
),
auto_approved_customers AS (
  SELECT ap.person_id
  FROM application ap
  JOIN rejected_customers rc ON ap.person_id = rc.person_id
  WHERE ap.status_id= 8 -- approval
    AND ap.date_create > (SELECT MAX(date_create) FROM application WHERE person_id = ap.person_id AND status_id = 9) + INTERVAL '30 days')

SELECT distinct ac.person_id
FROM auto_approved_customers aac
JOIN application ac ON aac.person_id = ac.person_id
WHERE ac.closed_agreement = 8;

比如,如果我看到一个月后客户端在新请求上收到自动批准,那么我想研究为什么会发生这种情况,一个月前拒绝后发生了什么变化。
| 个人ID| id|状态ID|日期|
| - -----|- -----|- -----|- -----|
| 一二一五一|1545641|九个|2022-03-21 2022-03-21|
| 一二一五一|4654646|八|2022-04-21 2022-04-21 2022-04-21|

z4iuyo4d

z4iuyo4d1#

要实现识别最初被拒绝但后来在另一个申请中获得自动批准的客户的目标,您可以执行以下步骤:
1.筛选表以检索最初拒绝客户端的请求。您可以通过选择“closed_agreement”字段设置为“rejected”的行来实现这一点。
1.从筛选的请求中识别唯一的客户端ID(person_id)。这会给予你一个最初被拒绝的客户名单。
1.再次筛选表以检索自动批准客户端的请求。您可以选择“closed_agreement”字段设置为“auto-approved”的行。
1.将筛选的自动批准请求与上一步中的客户端ID列表进行匹配。这将为您提供最初被拒绝但后来收到自动批准的客户。
重要的是要考虑“closed_agreement”字段,以确保自动批准是针对另一个申请,而不是意外地调出以前的贷款申请。
下面是一个使用SQL的查询示例来说明这些步骤:

-- Step 1: Retrieve the requests where clients were initially refused
SELECT *
FROM requests
WHERE closed_agreement = 'rejected';

-- Step 2: Get unique client IDs who were initially refused
SELECT DISTINCT person_id
FROM requests
WHERE closed_agreement = 'rejected';

-- Step 3: Retrieve the requests where clients were auto-approved
SELECT *
FROM requests
WHERE closed_agreement = 'auto-approved';

-- Step 4: Match auto-approved requests with the list of initially refused clients
SELECT *
FROM requests
WHERE person_id IN (
    SELECT DISTINCT person_id
    FROM requests
    WHERE closed_agreement = 'rejected'
) AND closed_agreement = 'auto-approved';

您可以根据特定的表结构和列名修改查询。此外,您可以使用Python等编程语言或其他工具对数据执行类似的操作。#apacheage #postgresql

相关问题