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
9f2e5c5c
Commit
9f2e5c5c
authored
5 years ago
by
jvfpw18
Browse files
Options
Downloads
Patches
Plain Diff
Add filter adm_dependency to classroomCount
parent
43c60b54
No related branches found
No related tags found
1 merge request
!7
Docente por formacao, matricula por localizacao e transporte
Changes
2
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
idm.sql
+22
-16
22 additions, 16 deletions
idm.sql
matricula_por_localizacao.sql
+15
-11
15 additions, 11 deletions
matricula_por_localizacao.sql
with
37 additions
and
27 deletions
idm.sql
+
22
−
16
View file @
9f2e5c5c
...
...
@@ -24,73 +24,79 @@ 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
,
ano_censo
,
localizacao_id
(
SELECT
count
(
serie_ano_id
)
AS
total_estado
,
serie_ano_id
,
estado_id
,
ano_censo
,
localizacao_id
,
dependencia_adm_id
FROM
matricula
WHERE
ano_censo
>=
2017
AND
tipo
<=
3
AND
dependencia_adm_id
<=
3
GROUP
BY
serie_ano_id
,
estado_id
,
ano_censo
,
localizacao_id
),
GROUP
BY
serie_ano_id
,
estado_id
,
ano_censo
,
localizacao_id
,
dependencia_adm_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
ano_censo
,
localizacao_id
,
dependencia_adm_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
),
GROUP
BY
serie_mod
,
estado_id
,
ano_censo
,
localizacao_id
,
dependencia_adm_id
),
div_brasil
AS
(
SELECT
sum
(
total_estado
)
AS
total_brasil
,
serie_ano_id
,
ano_censo
,
localizacao_id
(
SELECT
sum
(
total_estado
)
AS
total_brasil
,
serie_ano_id
,
ano_censo
,
localizacao_id
,
dependencia_adm_id
FROM
div_estado
GROUP
BY
serie_ano_id
,
ano_censo
,
localizacao_id
),
GROUP
BY
serie_ano_id
,
ano_censo
,
localizacao_id
,
dependencia_adm_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
(
SELECT
sum
(
total_brasil
)
AS
total_brasil_mod
,
cast
(
LEFT
(
serie_ano_id
,
1
)
as
integer
)
as
serie_mod
,
ano_censo
,
localizacao_id
,
dependencia_adm_id
FROM
div_brasil
GROUP
BY
serie_mod
,
ano_censo
,
localizacao_id
),
GROUP
BY
serie_mod
,
ano_censo
,
localizacao_id
,
dependencia_adm_id
),
nivel_sim1
AS
(
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
matricula
.
localizacao_id
,
matricula
.
dependencia_adm_id
FROM
matricula
JOIN
div_brasil
ON
matricula
.
serie_ano_id
=
div_brasil
.
serie_ano_id
AND
matricula
.
ano_censo
=
div_brasil
.
ano_censo
AND
matricula
.
localizacao_id
=
div_brasil
.
localizacao_id
AND
matricula
.
dependencia_adm_id
=
div_brasil
.
dependencia_adm_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
),
matricula
.
localizacao_id
,
matricula
.
dependencia_adm_id
),
nivel_sim2
AS
(
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
matricula
.
localizacao_id
,
matricula
.
dependencia_adm_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
AND
matricula
.
dependencia_adm_id
=
div_estado
.
dependencia_adm_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
),
matricula
.
localizacao_id
,
matricula
.
dependencia_adm_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
1
AS
nivel_simulacao
,
matricula
.
localizacao_id
,
matricula
.
dependencia_adm_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
AND
matricula
.
dependencia_adm_id
=
div_brasil_mod
.
dependencia_adm_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
),
matricula
.
localizacao_id
,
matricula
.
dependencia_adm_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
2
AS
nivel_simulacao
,
matricula
.
localizacao_id
,
matricula
.
dependencia_adm_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
AND
matricula
.
dependencia_adm_id
=
div_estado_mod
.
dependencia_adm_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
)
matricula
.
localizacao_id
,
matricula
.
dependencia_adm_id
)
SELECT
*
FROM
nivel_sim1
UNION
ALL
...
...
This diff is collapsed.
Click to expand it.
matricula_por_localizacao.sql
+
15
−
11
View file @
9f2e5c5c
...
...
@@ -25,44 +25,48 @@ CREATE TABLE matricula_por_localizacao AS (
WITH
day_count
AS
(
SELECT
count
(
*
)
as
dia_total
,
ano_censo
,
estado_id
,
municipio_id
,
serie_ano_id
,
localizacao_id
(
SELECT
count
(
*
)
as
dia_total
,
ano_censo
,
estado_id
,
municipio_id
,
serie_ano_id
,
localizacao_id
,
dependencia_adm_id
FROM
matricula
WHERE
tipo
<=
3
AND
dependencia_adm_id
<
4
AND
ano_censo
>=
2017
AND
(
turma_turno_id
IN
(
1
,
2
,
99
)
OR
turma_turno_id
IS
null
)
GROUP
BY
ano_censo
,
estado_id
,
municipio_id
,
serie_ano_id
,
localizacao_id
ORDER
BY
ano_censo
,
estado_id
,
municipio_id
,
serie_ano_id
,
localizacao_id
GROUP
BY
ano_censo
,
estado_id
,
municipio_id
,
serie_ano_id
,
localizacao_id
,
dependencia_adm_id
ORDER
BY
ano_censo
,
estado_id
,
municipio_id
,
serie_ano_id
,
localizacao_id
,
dependencia_adm_id
),
night_count
AS
(
SELECT
count
(
*
)
as
noite_total
,
ano_censo
,
estado_id
,
municipio_id
,
serie_ano_id
,
localizacao_id
(
SELECT
count
(
*
)
as
noite_total
,
ano_censo
,
estado_id
,
municipio_id
,
serie_ano_id
,
localizacao_id
,
dependencia_adm_id
FROM
matricula
WHERE
tipo
<=
3
AND
dependencia_adm_id
<
4
AND
ano_censo
>=
2017
AND
turma_turno_id
=
3
GROUP
BY
ano_censo
,
estado_id
,
municipio_id
,
serie_ano_id
,
localizacao_id
ORDER
BY
ano_censo
,
estado_id
,
municipio_id
,
serie_ano_id
,
localizacao_id
GROUP
BY
ano_censo
,
estado_id
,
municipio_id
,
serie_ano_id
,
localizacao_id
,
dependencia_adm_id
ORDER
BY
ano_censo
,
estado_id
,
municipio_id
,
serie_ano_id
,
localizacao_id
,
dependencia_adm_id
)
SELECT
matricula
.
ano_censo
,
matricula
.
estado_id
,
matricula
.
municipio_id
,
matricula
.
serie_ano_id
,
COALESCE
(
dia_total
,
0
)
AS
dia_total
,
COALESCE
(
noite_total
,
0
)
AS
noite_total
,
matricula
.
localizacao_id
COALESCE
(
noite_total
,
0
)
AS
noite_total
,
matricula
.
localizacao_id
,
matricula
.
dependencia_adm_id
FROM
matricula
LEFT
JOIN
day_count
ON
matricula
.
ano_censo
=
day_count
.
ano_censo
AND
matricula
.
estado_id
=
day_count
.
estado_id
AND
matricula
.
municipio_id
=
day_count
.
municipio_id
AND
matricula
.
serie_ano_id
=
day_count
.
serie_ano_id
AND
matricula
.
localizacao_id
=
day_count
.
localizacao_id
AND
matricula
.
dependencia_adm_id
=
day_count
.
dependencia_adm_id
LEFT
JOIN
night_count
ON
matricula
.
ano_censo
=
night_count
.
ano_censo
AND
matricula
.
estado_id
=
night_count
.
estado_id
AND
matricula
.
municipio_id
=
night_count
.
municipio_id
AND
matricula
.
serie_ano_id
=
night_count
.
serie_ano_id
AND
matricula
.
localizacao_id
=
night_count
.
localizacao_id
AND
matricula
.
dependencia_adm_id
=
night_count
.
dependencia_adm_id
WHERE
matricula
.
ano_censo
>=
2017
AND
matricula
.
serie_ano_id
IS
NOT
NULL
AND
matricula
.
tipo
<=
3
AND
matricula
.
dependencia_adm_id
<
4
GROUP
BY
matricula
.
ano_censo
,
matricula
.
estado_id
,
matricula
.
municipio_id
,
matricula
.
serie_ano_id
,
dia_total
,
noite_total
,
matricula
.
localizacao_id
noite_total
,
matricula
.
localizacao_id
,
matricula
.
dependencia_adm_id
);
-- Create serie mod
INSERT
INTO
matricula_por_localizacao
(
ano_censo
,
estado_id
,
municipio_id
,
serie_ano_id
,
dia_total
,
noite_total
,
localizacao_id
)
localizacao_id
,
dependencia_adm_id
)
SELECT
ano_censo
,
estado_id
,
municipio_id
,
LEFT
(
serie_ano_id
,
1
)
as
serie
,
sum
(
dia_total
),
sum
(
noite_total
),
localizacao_id
localizacao_id
,
dependencia_adm_id
FROM
matricula_por_localizacao
GROUP
BY
ano_censo
,
estado_id
,
municipio_id
,
serie
,
localizacao_id
;
\ No newline at end of file
GROUP
BY
ano_censo
,
estado_id
,
municipio_id
,
serie
,
localizacao_id
,
dependencia_adm_id
;
\ No newline at end of file
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