Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
S
SQL Scripts
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Harbor Registry
Model registry
Operate
Environments
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
HOTMapper
SQL Scripts
Commits
7f4d65aa
Commit
7f4d65aa
authored
6 years ago
by
jvfpw18
Browse files
Options
Downloads
Patches
Plain Diff
Fix idm execution with more than 1 year
parent
5dbfd00c
No related branches found
No related tags found
No related merge requests found
Changes
1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
idm.sql
+67
-18
67 additions, 18 deletions
idm.sql
with
67 additions
and
18 deletions
idm.sql
+
67
−
18
View file @
7f4d65aa
...
...
@@ -23,31 +23,80 @@ along with HOTMapper. If not, see <https://www.gnu.org/licenses/>.
CREATE
TABLE
indice_distribuicao_matriculas
AS
(
WITH
div_estado
AS
(
SELECT
count
(
serie_ano_id
)
AS
total_estado
,
serie_ano_id
,
estado_id
WITH
div_estado
AS
(
SELECT
count
(
serie_ano_id
)
AS
total_estado
,
serie_ano_id
,
estado_id
,
ano_censo
,
localizacao_id
FROM
matricula
WHERE
ano_censo
=
2017
AND
tipo
<=
3
AND
dependencia_adm_id
<=
3
GROUP
BY
serie_ano_id
,
estado_id
),
WHERE
ano_censo
>
=
2017
AND
tipo
<=
3
AND
dependencia_adm_id
<=
3
GROUP
BY
serie_ano_id
,
estado_id
,
ano_censo
,
localizacao_id
),
div_brasil
AS
(
SELECT
sum
(
total_estado
)
AS
total_brasil
,
serie_ano_id
div_estado_mod
AS
(
SELECT
count
(
serie_ano_id
)
AS
total_estado_mod
,
cast
(
LEFT
(
serie_ano_id
,
1
)
as
integer
)
as
serie_mod
,
estado_id
,
ano_censo
,
localizacao_id
FROM
matricula
WHERE
ano_censo
>=
2017
AND
tipo
<=
3
AND
dependencia_adm_id
<=
3
GROUP
BY
serie_mod
,
estado_id
,
ano_censo
,
localizacao_id
),
div_brasil
AS
(
SELECT
sum
(
total_estado
)
AS
total_brasil
,
serie_ano_id
,
ano_censo
,
localizacao_id
FROM
div_estado
GROUP
BY
serie_ano_id
),
GROUP
BY
serie_ano_id
,
ano_censo
,
localizacao_id
),
div_brasil_mod
AS
(
SELECT
sum
(
total_brasil
)
AS
total_brasil_mod
,
cast
(
LEFT
(
serie_ano_id
,
1
)
as
integer
)
as
serie_mod
,
ano_censo
,
localizacao_id
FROM
div_brasil
GROUP
BY
serie_mod
,
ano_censo
,
localizacao_id
),
nivel_sim1
AS
(
SELECT
ano_censo
,
matricula
.
estado_id
,
municipio_id
,
matricula
.
serie_ano_id
,
total_brasil
AS
total_etapa
,
cast
(
count
(
matricula
.
serie_ano_id
)
AS
double
)
/
total_etapa
AS
indice
,
1
AS
nivel_simulacao
(
SELECT
matricula
.
ano_censo
,
matricula
.
estado_id
,
municipio_id
,
matricula
.
serie_ano_id
,
total_brasil
AS
total_etapa
,
cast
(
count
(
matricula
.
serie_ano_id
)
AS
double
)
/
total_etapa
AS
indice
,
1
AS
nivel_simulacao
,
matricula
.
localizacao_id
FROM
matricula
JOIN
div_brasil
ON
matricula
.
serie_ano_id
=
div_brasil
.
serie_ano_id
WHERE
ano_censo
=
2017
AND
tipo
<=
3
AND
dependencia_adm_priv
<=
3
GROUP
BY
ano_censo
,
matricula
.
estado_id
,
municipio_id
,
matricula
.
serie_ano_id
,
total_etapa
),
AND
matricula
.
ano_censo
=
div_brasil
.
ano_censo
AND
matricula
.
localizacao_id
=
div_brasil
.
localizacao_id
WHERE
matricula
.
ano_censo
>=
2017
AND
tipo
<=
3
AND
dependencia_adm_priv
<=
3
GROUP
BY
matricula
.
ano_censo
,
matricula
.
estado_id
,
municipio_id
,
matricula
.
serie_ano_id
,
total_etapa
,
matricula
.
localizacao_id
),
nivel_sim2
AS
(
SELECT
ano_censo
,
matricula
.
estado_id
,
municipio_id
,
matricula
.
serie_ano_id
,
total_estado
AS
total_etapa
,
cast
(
count
(
matricula
.
serie_ano_id
)
AS
double
)
/
total_etapa
AS
indice
,
2
AS
nivel_simulacao
FROM
matricula
JOIN
div_estado
ON
matricula
.
serie_ano_id
=
div_estado
.
serie_ano_id
AND
matricula
.
estado_id
=
div_estado
.
estado_id
WHERE
ano_censo
=
2017
AND
tipo
<=
3
AND
dependencia_adm_priv
<=
3
GROUP
BY
ano_censo
,
matricula
.
estado_id
,
municipio_id
,
matricula
.
serie_ano_id
,
total_etapa
)
(
SELECT
matricula
.
ano_censo
,
matricula
.
estado_id
,
municipio_id
,
matricula
.
serie_ano_id
,
total_estado
AS
total_etapa
,
cast
(
count
(
matricula
.
serie_ano_id
)
AS
double
)
/
total_etapa
AS
indice
,
2
AS
nivel_simulacao
,
matricula
.
localizacao_id
FROM
matricula
JOIN
div_estado
ON
matricula
.
serie_ano_id
=
div_estado
.
serie_ano_id
AND
matricula
.
estado_id
=
div_estado
.
estado_id
AND
matricula
.
ano_censo
=
div_estado
.
ano_censo
AND
matricula
.
localizacao_id
=
div_estado
.
localizacao_id
WHERE
matricula
.
ano_censo
>=
2017
AND
tipo
<=
3
AND
dependencia_adm_priv
<=
3
GROUP
BY
matricula
.
ano_censo
,
matricula
.
estado_id
,
municipio_id
,
matricula
.
serie_ano_id
,
total_etapa
,
matricula
.
localizacao_id
),
nivel_sim1_mod
AS
(
SELECT
matricula
.
ano_censo
,
matricula
.
estado_id
,
municipio_id
,
serie_mod
as
serie_ano_id
,
total_brasil_mod
AS
total_etapa
,
cast
(
count
(
matricula
.
serie_ano_id
)
AS
double
)
/
total_etapa
AS
indice
,
1
AS
nivel_simulacao
,
matricula
.
localizacao_id
FROM
matricula
JOIN
div_brasil_mod
ON
LEFT
(
matricula
.
serie_ano_id
,
1
)
=
div_brasil_mod
.
serie_mod
AND
matricula
.
ano_censo
=
div_brasil_mod
.
ano_censo
AND
matricula
.
localizacao_id
=
div_brasil_mod
.
localizacao_id
WHERE
matricula
.
ano_censo
>=
2017
AND
tipo
<=
3
AND
dependencia_adm_priv
<=
3
GROUP
BY
matricula
.
ano_censo
,
matricula
.
estado_id
,
municipio_id
,
serie_mod
,
total_etapa
,
matricula
.
localizacao_id
),
nivel_sim2_mod
AS
(
SELECT
matricula
.
ano_censo
,
matricula
.
estado_id
,
municipio_id
,
serie_mod
as
serie_ano_id
,
total_estado_mod
AS
total_etapa
,
cast
(
count
(
matricula
.
serie_ano_id
)
AS
double
)
/
total_etapa
AS
indice
,
2
AS
nivel_simulacao
,
matricula
.
localizacao_id
FROM
matricula
JOIN
div_estado_mod
ON
LEFT
(
matricula
.
serie_ano_id
,
1
)
=
div_estado_mod
.
serie_mod
AND
matricula
.
estado_id
=
div_estado_mod
.
estado_id
AND
matricula
.
ano_censo
=
div_estado_mod
.
ano_censo
AND
matricula
.
localizacao_id
=
div_estado_mod
.
localizacao_id
WHERE
matricula
.
ano_censo
>=
2017
AND
tipo
<=
3
AND
dependencia_adm_priv
<=
3
GROUP
BY
matricula
.
ano_censo
,
matricula
.
estado_id
,
municipio_id
,
serie_mod
,
total_etapa
,
matricula
.
localizacao_id
)
SELECT
*
FROM
nivel_sim1
UNION
ALL
SELECT
*
FROM
nivel_sim2
UNION
ALL
SELECT
*
FROM
nivel_sim1_mod
UNION
ALL
SELECT
*
FROM
nivel_sim2_mod
);
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment