Entonces tengo 2 tablas diferentes que necesito para contar cuántos clientes nuevos tengo mensualmente, considerando la región y el tamaño de la empresa.

Se entiende que los nuevos clientes tienen motion_type = 'new_biz'. ID (Cust_Table) y OrgID (Org_table) son FK.

ORG_TABLE

| OrgID  | OrgCreate  | Region        | CompanySize
│ 1   │ 2020-01-10 │ south america │ 51-100
│ 2   │ 2020-03-15    │  asia   │ 0 - 50
│ 3   │ 2020-01-12    │north america│ 1001-5000
│ 4   │ 2020-10-01    │ africa      │ 0 - 50
│ 5   │ 2020-06-30    │south america│ 5001-10000

CUST_TABLE

│ ID │  CreateAt  │  Movement_type
│ 1  │ 2020-01-10 │ new_biz
│ 2  │ 2020-03-01 │ churn
│ 3  │ 2020-01-12 │ new_biz
│ 4  │ 2020-10-01 │ new_biz
│ 5  │ 2020-06-12 │ expansion

El resultado que intento obtener es:

│ Month │ New_Clients │ Region │ Org_Size
│ 1   │  1  │ south america │ 51-100
│ 1   │  1  │ north america  │ 1001 - 5000
│ 10 │  1  │ africa  │ 0 - 50

Probé la siguiente consulta, pero no puedo obtener la cantidad correcta de nuevos clientes ...

SELECCIONE

MES (CreateAt) COMO 'Mes',

ID AS 'ID de cliente',

CompanySize AS 'Tamaño de la empresa',

Región AS 'Región'

DESDE ORG_TABLE

ÚNETE A CUST_TABLE ON org_id = ID

DONDE AÑO (CreateAt) = 2020 AND Movement_type = 'new_biz';

¿Qué me estoy perdiendo? :(

0
E.A. 23 ene. 2021 a las 03:56

1 respuesta

La mejor respuesta

Si lo entiendo correctamente, desea agregación:

SELECT MONTH(CreateAt) AS Month, COUNT(*) as new_clients
       CompanySize, Region 
FROM ORG_TABLE o JOIN
     CUST_TABLE c
     ON c.org_id = o.ID
WHERE c.CretedAt >= '2020-01-01' AND
      c.CreateAt < '2021-01-01' AND
      c.Movement_type = 'new_biz'
GROUP BY MONTH(CreateAt), CompanySize, Region
0
Gordon Linoff 23 ene. 2021 a las 00:59