¿Cómo cuento las categorías de subconsultas CASE WHEN con una consulta externa?

Tengo un conjunto de datos de muestra en este db<>fiddle . Los datos representan un lote de pozos que se clasifican en diferentes categorías de tipo de pozo según algunos criterios. Estoy tratando de agrupar los pozos por la categoría en la que se encuentran y luego contar cuántos pozos hay en cada categoría según otro conjunto de criterios.

Mi consulta actual funciona parcialmente, pero solo cuenta correctamente los pozos que están más arriba en la CASE WHENjerarquía de cláusulas. Esto se debe a que el primero CASE WHENtiene la posibilidad de asignar categorías de pozos a todos los pozos del conjunto de datos. Sin embargo, a medida que pasa por cada CASE WHENcláusula, la consulta "ve" menos pozos porque se queda sin pozos a los que puede asignar una categoría. Cuando llega al final, casi todos los pozos ya tienen una categoría asignada, lo que impide que se produzcan algunos recuentos de categorías.

Aquí está la consulta actual que tengo, que también se encuentra en el enlace db<>fiddle anterior:

SELECT
    dt.WellCategory,
    ISNULL(SUM(CASE WHEN dt.LeaseType IN ('F','I','S','P') OR dt.LeaseType NOT IN ('F', 'I', 'S', 'P', 'U') THEN 1 END), 0) AS [Number of Wells], -- Federal + Indian + State + Fee + Multi-Lease
    ISNULL(SUM(CASE WHEN dt.LeaseType = 'F' THEN 1 END), 0) AS [Federal], -- Sums up how many wells from the subquery have a leasetype of "Federal"
    ISNULL(SUM(CASE WHEN dt.LeaseType = 'I' THEN 1 END), 0) AS [Indian],
    ISNULL(SUM(CASE WHEN dt.LeaseType = 'S' THEN 1 END), 0) AS [State],
    ISNULL(SUM(CASE WHEN dt.LeaseType = 'P' THEN 1 END), 0) AS [Fee (Private)],
    ISNULL(SUM(CASE WHEN dt.LeaseType NOT IN ('F', 'I', 'S', 'P', 'U') THEN 1 END), 0) AS [Multiple Lease Types]
FROM
(
    SELECT -- Subquery labels wells according to their wellstatus, welltype, etc.
        c.LeaseType,
        CASE 
            WHEN w.WellStatus = 'p' AND w.WellType = 'gw' OR ((w.WellStatus = 'pai' OR w.WellStatus = 'pii') AND (w.WellType = 'gwi' OR w.WellType = 'ggi' OR w.WellType = 'gwd')) THEN 'Producing Gas Wells'
            WHEN w.WellStatus = 'p' AND w.WellType = 'ow' OR ((w.WellStatus = 'pai' OR w.WellStatus = 'pii') AND (w.WellType = 'owi' OR w.WellType = 'ogi' OR w.WellType = 'owd')) THEN 'Producing Oil Wells'
            WHEN w.WellStatus = 's' AND w.WellType = 'ow' OR ((w.WellStatus = 'sai' OR w.WellStatus = 'sii') AND (w.WellType = 'owi' OR w.WellType = 'ogi' OR w.WellType = 'owd')) THEN 'Shut-In Oil Wells'
            WHEN w.WellStatus = 's' AND w.WellType = 'gw' OR ((w.WellStatus = 'sai' OR w.WellStatus = 'sii') AND (w.WellType = 'gwi' or w.WellType = 'ggi' or w.WellType = 'gwd')) THEN 'Shut-In Gas Wells'
            WHEN w.WellStatus = 'a' AND w.WellType = 'wi' THEN 'Active Water Injection Wells'
            WHEN w.WellStatus = 'a' AND w.WellType = 'gi' THEN 'Active Gas Injection Wells'
            WHEN w.WellStatus = 'a' AND w.WellType = 'wd' THEN 'Active Water Disposal Wells'
            WHEN w.WellStatus = 'a' AND w.WellType = 'gs' THEN 'Active Gas Storage Wells'
            WHEN w.WellStatus = 'a' AND w.WellType = 'ws' THEN 'Active Water Source Wells'
            WHEN w.WellStatus = 'a' AND w.WellType = 'tw' THEN 'Active Test Holes'
            WHEN w.WellStatus = 'i' AND w.WellType = 'wi' THEN 'Inactive Water Injection Wells'
            WHEN w.WellStatus = 'i' AND w.WellType = 'gi' THEN 'Inactive Gas Injection Wells'
            WHEN w.WellStatus = 'i' AND w.WellType = 'wd' THEN 'Inactive Water Disposal Wells'
            WHEN w.WellStatus = 'i' AND w.WellType = 'gs' THEN 'Inactive Gas Storage Wells'
            WHEN w.WellStatus = 'i' AND w.WellType = 'ws' THEN 'Inactive Water Source Wells'
            WHEN w.WellStatus = 'i' AND w.WellType = 'tw' THEN 'Inactive Test Holes'
            WHEN w.WellStatus = 'ta' THEN 'Temporarily-Abandoned Wells'
            WHEN w.WellStatus = 'pa' THEN 'Plugged and Abandoned Wells'
            WHEN c.LateralStatus = 'NEW' THEN 'New Permits - Not Yet Approved'
            WHEN c.LateralStatus = 'APD' THEN 'Permits Approved - Not Yet Commenced'
            WHEN c.LateralStatus = 'DRL' THEN 'Drilling Commenced - Not Yet Completed'
            WHEN c.LateralStatus = 'OPS' THEN 'Drilling Operations Suspended'
            WHEN w.WellStatus IN ('drl','ops','p','s','ta','pai','pii','sai','sii','a','i') AND w.Operator = 101600 THEN 'Open Orphan Wells (no known operator)'
            WHEN w.WellStatus IN ('drl','ops') THEN 'Total Holes Not Yet Completed'
            WHEN ((w.WellStatus = 'p' or w.WellStatus = 's') AND w.WellType <> 'LI') OR (w.WellStatus = 'pai' OR w.WellStatus = 'pii' OR w.WellStatus = 'sai' OR w.WellStatus = 'sii') THEN 'Total Wells Capable of Production'
            WHEN (w.WellStatus = 'drl' OR w.WellStatus = 'ops' OR ((w.WellStatus = 'p' or w.WellStatus = 's') AND w.WellType <> 'LI') OR w.WellStatus = 'ta' OR w.WellStatus = 'pai' OR w.WellStatus = 'pii' OR w.WellStatus = 'sai' OR w.WellStatus = 'sii' OR w.WellStatus = 'a' OR w.WellStatus = 'i') THEN 'Total Non-Plugged Wells'
            WHEN (w.WellStatus = 'drl' or w.WellStatus = 'ops' or ((w.WellStatus = 'p' or w.WellStatus = 's') and w.WellType <> 'LI') or w.WellStatus = 'ta' or w.WellStatus = 'pai' or w.WellStatus = 'pii' or w.WellStatus = 'sai' or w.WellStatus = 'sii' or w.WellStatus = 'a' or w.WellStatus = 'i' or w.WellStatus = 'pa') THEN 'Total Wells Drilled'
        END AS WellCategory
    FROM HWell w
        LEFT JOIN HConstruct c ON c.WellKey = w.PKey
) dt
GROUP BY dt.WellCategory
ORDER BY dt.WellCategory DESC

Aquí está la tabla que produce la consulta anterior:

Tabla 1

BuenoCategoría Número de pozos Federal indio Expresar Cuota (Privada) Múltiples tipos de arrendamiento
Total de pozos con capacidad de producción 2 2 0 0 0 0
Pozos temporalmente abandonados 1 1 0 0 0 0
Pozos de petróleo cerrados 21 10 10 0 1 0
Pozos de gas cerrados 26 19 2 4 1 0
Producción de pozos de petróleo 59 18 25 6 10 0
Producción de pozos de gas 90 59 1 25 5 0
Pozos tapados y abandonados 113 60 15 19 19 0
Permisos aprobados - aún no iniciados 14 4 2 2 4 2
Nuevos permisos: aún no aprobados 1 0 1 0 0 0
Pozos de inyección de agua inactivos 18 11 5 2 0 0
Operaciones de perforación suspendidas 4 1 3 0 0 0
Perforación iniciada - aún no completada 4 1 1 0 2 0
Pozos de inyección de agua activa 6 1 5 0 0 0
Pozos activos de eliminación de agua 1 0 0 1 0 0
NULO 140 83 28 14 15 0

Aquí está la tabla que sé que el mismo conjunto de datos puede producir y la que quiero replicar:

Tabla 2

Estados de pozos Número de pozos Federal indio Expresar Cuota (Privada) Múltiples tipos de arrendamiento
Producción de pozos de petróleo 59 18 25 6 10 0
Producción de pozos de gas 90 59 1 25 5 0
Pozos de petróleo cerrados 21 10 10 0 1 0
Pozos de gas cerrados 26 19 2 4 1 0
Pozos de inyección de agua activa 6 1 5 0 0 0
Pozos de inyección de gas activo 0 0 0 0 0 0
Pozos activos de eliminación de agua 1 0 0 1 0 0
Pozos de almacenamiento de gas activo 0 0 0 0 0 0
Pozos de fuente de agua activa 0 0 0 0 0 0
Agujeros de prueba activos 0 0 0 0 0 0
Pozos de inyección de agua inactivos 18 11 5 2 0 0
Pozos de inyección de gas inactivo 0 0 0 0 0 0
Pozos de eliminación de agua inactivos 0 0 0 0 0 0
Pozos de almacenamiento de gas inactivo 0 0 0 0 0 0
Pozos de fuente de agua inactivos 0 0 0 0 0 0
Agujeros de prueba inactivos 0 0 0 0 0 0
Pozos temporalmente abandonados 1 1 0 0 0 0
Pozos tapados y abandonados 113 60 15 19 19 0
Nuevos permisos: aún no aprobados 1 0 1 0 0 0
Permisos aprobados - aún no iniciados 14 4 2 2 4 2
Perforación iniciada - aún no completada 4 1 1 0 2 0
Operaciones de perforación suspendidas 4 1 3 0 0 0
Open Orphan Wells (sin operador conocido) 1 1 0 0 0 0
Agujeros totales aún no completados 8 2 4 0 2 0
Total de pozos con capacidad de producción 198 108 38 35 17 0
Total de pozos no taponados 232 123 52 38 19 0
Total de pozos perforados 345 183 67 57 38 0

La tabla #2 se genera usando una consulta mucho más larga que usa varias subconsultas y tablas temporales para contar cuántos pozos pertenecen a cada categoría usando su DISTINCT w.WellID. Además, el conjunto de datos completo tiene muchas más entradas, por lo general cada categoría tiene al menos algunos pozos y no tantos "0".

No sé cómo decirle a la consulta que cuente los pozos más de una vez si se dividen en varias categorías de pozos sin hacer que la consulta sea muy larga y comenzar a introducir tablas temporales, lo que preferiría no hacer. *NOTA No quiero contar un pozo dos veces para la misma categoría, solo contarlo una vez por categoría.

Answer

Aquí hay una forma en que podría hacerlo mientras lo mantiene un poco fácil de leer:

Rompí la CASEdeclaración en pedazos lógicos. Las partes que no se superponen, pero que parecen relacionadas, ingresan en su propia consulta para determinar la categoría. Luego UNION ALLlos junté para evitar la desduplicación.

Esto se puede hacer de muchas maneras, y esta es solo una de ellas...

Además, como mencioné en la sesión de chat, si puede, le recomiendo que trabaje en la normalización de estos datos, la creación de tablas de búsqueda, etc.

WITH cte_Wells AS (
    SELECT w.WellStatus, w.WellType, c.LateralStatus, c.LeaseType, w.Operator
    FROM dbo.HWell w
        LEFT JOIN dbo.HConstruct c ON c.WellKey = w.PKey
)
SELECT
    dt.WellCategory,
    ISNULL(SUM(CASE WHEN dt.LeaseType IN ('F','I','S','P') OR dt.LeaseType NOT IN ('F', 'I', 'S', 'P', 'U') THEN 1 END), 0) AS [Number of Wells], -- Federal + Indian + State + Fee + Multi-Lease
    ISNULL(SUM(CASE WHEN dt.LeaseType = 'F' THEN 1 END), 0) AS [Federal], -- Sums up how many wells from the subquery have a leasetype of "Federal"
    ISNULL(SUM(CASE WHEN dt.LeaseType = 'I' THEN 1 END), 0) AS [Indian],
    ISNULL(SUM(CASE WHEN dt.LeaseType = 'S' THEN 1 END), 0) AS [State],
    ISNULL(SUM(CASE WHEN dt.LeaseType = 'P' THEN 1 END), 0) AS [Fee (Private)],
    ISNULL(SUM(CASE WHEN dt.LeaseType NOT IN ('F', 'I', 'S', 'P', 'U') THEN 1 END), 0) AS [Multiple Lease Types]
FROM (
    SELECT w.LeaseType, x.WellCategory
    FROM cte_Wells w
        CROSS APPLY (
            SELECT WellCategory = CASE 
                                    WHEN w.WellStatus = 'p' AND w.WellType = 'gw' OR (w.WellStatus IN ('pai','pii') AND w.WellType IN ('gwi','ggi','gwd')) THEN 'Producing Gas Wells'
                                    WHEN w.WellStatus = 'p' AND w.WellType = 'ow' OR (w.WellStatus IN ('pai','pii') AND w.WellType IN ('owi','ogi','owd')) THEN 'Producing Oil Wells'
                                    WHEN w.WellStatus = 's' AND w.WellType = 'gw' OR (w.WellStatus IN ('sai','sii') AND w.WellType IN ('gwi','ggi','gwd')) THEN 'Shut-In Gas Wells'
                                    WHEN w.WellStatus = 's' AND w.WellType = 'ow' OR (w.WellStatus IN ('sai','sii') AND w.WellType IN ('owi','ogi','owd')) THEN 'Shut-In Oil Wells'
                                    WHEN w.WellStatus = 'a' AND w.WellType = 'wi' THEN 'Active Water Injection Wells'
                                    WHEN w.WellStatus = 'a' AND w.WellType = 'gi' THEN 'Active Gas Injection Wells'
                                    WHEN w.WellStatus = 'a' AND w.WellType = 'wd' THEN 'Active Water Disposal Wells'
                                    WHEN w.WellStatus = 'a' AND w.WellType = 'gs' THEN 'Active Gas Storage Wells'
                                    WHEN w.WellStatus = 'a' AND w.WellType = 'ws' THEN 'Active Water Source Wells'
                                    WHEN w.WellStatus = 'a' AND w.WellType = 'tw' THEN 'Active Test Holes'
                                    WHEN w.WellStatus = 'i' AND w.WellType = 'wi' THEN 'Inactive Water Injection Wells'
                                    WHEN w.WellStatus = 'i' AND w.WellType = 'gi' THEN 'Inactive Gas Injection Wells'
                                    WHEN w.WellStatus = 'i' AND w.WellType = 'wd' THEN 'Inactive Water Disposal Wells'
                                    WHEN w.WellStatus = 'i' AND w.WellType = 'gs' THEN 'Inactive Gas Storage Wells'
                                    WHEN w.WellStatus = 'i' AND w.WellType = 'ws' THEN 'Inactive Water Source Wells'
                                    WHEN w.WellStatus = 'i' AND w.WellType = 'tw' THEN 'Inactive Test Holes'
                                    WHEN w.WellStatus = 'ta' THEN 'Temporarily-Abandoned Wells'
                                    WHEN w.WellStatus = 'pa' THEN 'Plugged and Abandoned Wells'
                                    ELSE NULL
                                END
        ) x
    WHERE x.WellCategory IS NOT NULL
    -----------------
    UNION ALL
    -----------------
    SELECT w.LeaseType, x.WellCategory
    FROM cte_Wells w
        CROSS APPLY (
            SELECT WellCategory = CASE 
                                    WHEN w.LateralStatus = 'NEW' THEN 'New Permits - Not Yet Approved'
                                    WHEN w.LateralStatus = 'APD' THEN 'Permits Approved - Not Yet Commenced'
                                    WHEN w.LateralStatus = 'DRL' THEN 'Drilling Commenced - Not Yet Completed'
                                    WHEN w.LateralStatus = 'OPS' THEN 'Drilling Operations Suspended'
                                    ELSE NULL
                                END
        ) x
    WHERE x.WellCategory IS NOT NULL
    -----------------
    UNION ALL
    -----------------
    SELECT w.LeaseType, WellCategory = 'Open Orphan Wells (no known operator)'
    FROM cte_Wells w
    WHERE w.WellStatus IN ('drl','ops','p','s','ta','pai','pii','sai','sii','a','i') AND w.Operator = 101600
    -----------------
    UNION ALL
    -----------------
    SELECT w.LeaseType, WellCategory = 'Total Holes Not Yet Completed'
    FROM cte_Wells w
    WHERE w.WellStatus IN ('drl','ops')
    -----------------
    UNION ALL
    -----------------
    SELECT w.LeaseType, WellCategory = 'Total Wells Capable of Production'
    FROM cte_Wells w
    WHERE (w.WellStatus IN ('p','s') AND w.WellType <> 'LI') OR w.WellStatus IN ('pai','pii','sai','sii')
    -----------------
    UNION ALL
    -----------------
    SELECT w.LeaseType, WellCategory = 'Total Non-Plugged Wells'
    FROM cte_Wells w
    WHERE (w.WellStatus IN ('p','s') AND w.WellType <> 'LI') OR w.WellStatus IN ('drl','ops','ta','pai','pii','sai','sii','a','i')
    -----------------
    UNION ALL
    -----------------
    SELECT w.LeaseType, WellCategory = 'Total Wells Drilled'
    FROM cte_Wells w
    WHERE (w.WellStatus IN ('p','s') AND w.WellType <> 'LI') or w.WellStatus IN ('drl','ops','ta','pai','pii','sai','sii','a','i','pa')
) dt
GROUP BY dt.WellCategory
ORDER BY dt.WellCategory DESC

Verifiqué los resultados de esta consulta con los datos de muestra y los resultados esperados propuestos, y parecen coincidir. Así que esto te dará lo que quieres. Sin embargo, dado que no conozco los datos, deberá inspeccionarlos en busca de errores lógicos y de rendimiento.

NOTA: Los resultados de esta consulta no generan recuentos de categorías vacías. Si eso es algo que necesita, comente esta solución y puedo solucionarlo. La solución es agregar una tabla con todas las categorías, luego LEFT JOIN para ver los resultados de los conteos.

Una forma en que podría hacer esto sería generar una fila para cada criterio y luego agregar aquellos que arrojan una coincidencia, lo que se puede hacer usando cross applyun valuesgenerador de tablas que garantiza que todas sus caseexpresiones se evalúen para todos los pozos.

Este enfoque en la actualidad supone que cada pozo solo tiene un WellCategoryvalor. Si puede haber más de uno, deberá realizar esos cambios usted mismo. Tampoco he envuelto la salida en un pivot, ya que creo que esto es generalmente algo que se hace mejor en su capa de presentación en lugar de SQL sin formato.

Sugiero mantener la salida SQL en este formato ya que las herramientas de presentación son mucho mejores para manejar dinámicamente nuevas categorías (por ejemplo, LeaseTypese agrega una nueva) que SQL, que en este formato normalizado no requeriría un cambio en el script o la capa de presentación. , salvo cualquier etiqueta a medida.

Si desea conservar la salida dinámica, simplemente puede envolver esta consulta en su exterior actual select:

Consulta

select c.LeaseType
      ,cat.WellCategory
      ,count(w.PKey) as Wells
from @HWell as w
    left join @HConstruct as c
        on w.Pkey = c.WellKey
    cross apply(values(case when w.WellStatus = 'p' AND w.WellType = 'gw' OR ((w.WellStatus = 'pai' OR w.WellStatus = 'pii') AND (w.WellType = 'gwi' OR w.WellType = 'ggi' OR w.WellType = 'gwd')) then 'Producing Gas Wells' end)
                     ,(case when w.WellStatus = 'p' AND w.WellType = 'ow' OR ((w.WellStatus = 'pai' OR w.WellStatus = 'pii') AND (w.WellType = 'owi' OR w.WellType = 'ogi' OR w.WellType = 'owd')) then 'Producing Oil Wells' end) -- Need to count DISTINCT WellID's to get to 4770
                     ,(case when w.WellStatus = 's' AND w.WellType = 'ow' OR ((w.WellStatus = 'sai' OR w.WellStatus = 'sii') AND (w.WellType = 'owi' OR w.WellType = 'ogi' OR w.WellType = 'owd')) then 'Shut-In Oil Wells' end)
                     ,(case when w.WellStatus = 's' AND w.WellType = 'gw' OR ((w.WellStatus = 'sai' OR w.WellStatus = 'sii') AND (w.WellType = 'gwi' or w.WellType = 'ggi' or w.WellType = 'gwd')) then 'Shut-In Gas Wells' end)
                     ,(case when w.WellStatus = 'a' AND w.WellType = 'wi' then 'Active Water Injection Wells' end)
                     ,(case when w.WellStatus = 'a' AND w.WellType = 'gi' then 'Active Gas Injection Wells' end)
                     ,(case when w.WellStatus = 'a' AND w.WellType = 'wd' then 'Active Water Disposal Wells' end)
                     ,(case when w.WellStatus = 'a' AND w.WellType = 'gs' then 'Active Gas Storage Wells' end)
                     ,(case when w.WellStatus = 'a' AND w.WellType = 'ws' then 'Active Water Source Wells' end)
                     ,(case when w.WellStatus = 'a' AND w.WellType = 'tw' then 'Active Test Holes' end)
                     ,(case when w.WellStatus = 'i' AND w.WellType = 'wi' then 'Inactive Water Injection Wells' end)
                     ,(case when w.WellStatus = 'i' AND w.WellType = 'gi' then 'Inactive Gas Injection Wells' end)
                     ,(case when w.WellStatus = 'i' AND w.WellType = 'wd' then 'Inactive Water Disposal Wells' end)
                     ,(case when w.WellStatus = 'i' AND w.WellType = 'gs' then 'Inactive Gas Storage Wells' end)
                     ,(case when w.WellStatus = 'i' AND w.WellType = 'ws' then 'Inactive Water Source Wells' end)
                     ,(case when w.WellStatus = 'i' AND w.WellType = 'tw' then 'Inactive Test Holes' end)
                     ,(case when w.WellStatus = 'ta' then 'Temporarily-Abandoned Wells' end)
                     ,(case when w.WellStatus = 'pa' then 'Plugged and Abandoned Wells' end)
                     ,(case when c.LateralStatus = 'NEW' then 'New Permits - Not Yet Approved' end)
                     ,(case when c.LateralStatus = 'APD' then 'Permits Approved - Not Yet Commenced' end)
                     ,(case when c.LateralStatus = 'DRL' then 'Drilling Commenced - Not Yet Completed' end)
                     ,(case when c.LateralStatus = 'OPS' then 'Drilling Operations Suspended' end)
                     ,(case when w.WellStatus IN ('drl','ops','p','s','ta','pai','pii','sai','sii','a','i') AND w.Operator = 101600 then 'Open Orphan Wells (no known operator)' end)
                     ,(case when w.WellStatus IN ('drl','ops') then 'Total Holes Not Yet Completed' end)
                     ,(case when ((w.WellStatus = 'p' or w.WellStatus = 's') AND w.WellType <> 'LI') OR (w.WellStatus = 'pai' OR w.WellStatus = 'pii' OR w.WellStatus = 'sai' OR w.WellStatus = 'sii') then 'Total Wells Capable of Production' end)
                     ,(case when (w.WellStatus = 'drl' OR w.WellStatus = 'ops' OR ((w.WellStatus = 'p' or w.WellStatus = 's') AND w.WellType <> 'LI') OR w.WellStatus = 'ta' OR w.WellStatus = 'pai' OR w.WellStatus = 'pii' OR w.WellStatus = 'sai' OR w.WellStatus = 'sii' OR w.WellStatus = 'a' OR w.WellStatus = 'i') then 'Total Non-Plugged Wells' end)
                     ,(case when (w.WellStatus = 'drl' or w.WellStatus = 'ops' or ((w.WellStatus = 'p' or w.WellStatus = 's') and w.WellType <> 'LI') or w.WellStatus = 'ta' or w.WellStatus = 'pai' or w.WellStatus = 'pii' or w.WellStatus = 'sai' or w.WellStatus = 'sii' or w.WellStatus = 'a' or w.WellStatus = 'i' or w.WellStatus = 'pa') then 'Total Wells Drilled' end)
               ) as cat(WellCategory)
where cat.WellCategory is not null
group by c.LeaseType
        ,cat.WellCategory
order by c.LeaseType
        ,Wells desc;

Producción

Tipo de arrendamiento BuenoCategoría pozos
F Total de pozos perforados 183
F Total de pozos no taponados 123
F Total de pozos con capacidad de producción 108
F Pozos tapados y abandonados 60
F Producción de pozos de gas 59
F Pozos de gas cerrados 19
F Producción de pozos de petróleo 18
F Pozos de inyección de agua inactivos 11
F Pozos de petróleo cerrados 10
F Permisos aprobados - aún no iniciados 4
F Agujeros totales aún no completados 2
F Perforación iniciada - aún no completada 1
F Open Orphan Wells (sin operador conocido) 1
F Pozos temporalmente abandonados 1
F Pozos de inyección de agua activa 1
F Operaciones de perforación suspendidas 1
I Total de pozos perforados 67
I Total de pozos no taponados 52
I Total de pozos con capacidad de producción 38
I Producción de pozos de petróleo 25
I Pozos tapados y abandonados 15
I Pozos de petróleo cerrados 10
I Pozos de inyección de agua activa 5
I Pozos de inyección de agua inactivos 5
I Agujeros totales aún no completados 4
I Operaciones de perforación suspendidas 3
I Permisos aprobados - aún no iniciados 2
I Pozos de gas cerrados 2
I Nuevos permisos: aún no aprobados 1
I Producción de pozos de gas 1
I Perforación iniciada - aún no completada 1
IP Permisos aprobados - aún no iniciados 2
PAGS Total de pozos perforados 38
PAGS Total de pozos no taponados 19
PAGS Pozos tapados y abandonados 19
PAGS Total de pozos con capacidad de producción 17
PAGS Producción de pozos de petróleo 10
PAGS Producción de pozos de gas 5
PAGS Permisos aprobados - aún no iniciados 4
PAGS Agujeros totales aún no completados 2
PAGS Perforación iniciada - aún no completada 2
PAGS Pozos de gas cerrados 1
PAGS Pozos de petróleo cerrados 1
S Total de pozos perforados 57
S Total de pozos no taponados 38
S Total de pozos con capacidad de producción 35
S Producción de pozos de gas 25
S Pozos tapados y abandonados 19
S Producción de pozos de petróleo 6
S Pozos de gas cerrados 4
S Permisos aprobados - aún no iniciados 2
S Pozos de inyección de agua inactivos 2
S Pozos activos de eliminación de agua 1