38 lines
1.4 KiB
SQL
38 lines
1.4 KiB
SQL
-- session_capability_growth: vista que mide el ciclo "crear+usar" por sesion.
|
|
-- Una funcion se considera "creada en sesion X" si el primer code_writes
|
|
-- registrado para ese function_id (a nivel global) ocurrio dentro de la sesion X.
|
|
-- Una funcion "usada en sesion X" = >=1 fila en calls con misma sesion y ts >= created_at.
|
|
--
|
|
-- Lectura: created_this_session = COUNT(*) WHERE session_id = ?
|
|
-- used = COUNT(*) WHERE session_id = ? AND calls_in_session > 0
|
|
-- orphan = COUNT(*) WHERE session_id = ? AND calls_in_session = 0
|
|
--
|
|
-- Issue 0086. Aditivo. No reescribe schema previo.
|
|
|
|
CREATE VIEW IF NOT EXISTS session_capability_growth AS
|
|
WITH first_write AS (
|
|
SELECT
|
|
cw.function_id,
|
|
cw.session_id,
|
|
cw.ts AS created_at
|
|
FROM code_writes cw
|
|
WHERE cw.function_id != ''
|
|
AND cw.ts = (
|
|
SELECT MIN(ts) FROM code_writes
|
|
WHERE function_id = cw.function_id
|
|
)
|
|
)
|
|
SELECT
|
|
fw.session_id,
|
|
fw.function_id,
|
|
fw.created_at,
|
|
(SELECT MIN(c.ts) FROM calls c
|
|
WHERE c.function_id = fw.function_id
|
|
AND c.session_id = fw.session_id
|
|
AND c.ts >= fw.created_at) AS first_call_at,
|
|
(SELECT COUNT(*) FROM calls c
|
|
WHERE c.function_id = fw.function_id
|
|
AND c.session_id = fw.session_id
|
|
AND c.ts >= fw.created_at) AS calls_in_session
|
|
FROM first_write fw;
|