Jump to content
Sign in to follow this  
jamersondr

Como trazer os resultados zerados.

Recommended Posts

Tenho uma SQL que estou tentando rodar no Postgres, para que me retorne os valores diariamente por ano. Com uma ressalva, preciso que os dias restantes do mês de janeiro estejam sem os zeros para o ano de 2015. Consegui resolver esta questão dos dias seguintes virem nulos ao invés dos zeros. Mas os dias do mês que estão zerados nos quatro anos ele simplesmente não lista. Tais como os dias 4, 10, 12. Abaixo está o código e uma imagem do resultado. Como poderia fazer para que no resultado os anos que estão zerados traga o zero?

SELECT CASE DATE_PART('DAY', DATA) 
					when 01 then '01'
					when 02 then '02'
					when 03 then '03'
					when 04 then '04'
					when 05 then '05'
					when 06 then '06'
					when 07 then '07'
					when 08 then '08'
					when 09 then '09'
					when 10 then '10'
					when 11 then '11'
					when 12 then '12'
					when 13 then '13'
					when 14 then '14'
					when 15 then '15'
					when 16 then '16'
					when 17 then '17'
					when 18 then '18'
					when 19 then '19'
					when 20 then '20'
					when 21 then '21'
					when 22 then '22'
					when 23 then '23'
					when 24 then '24'
					when 25 then '25'
					when 26 then '26'
					when 27 then '27'
					when 28 then '28'
					when 29 then '29'
					when 30 then '30'
					when 31 then '31' end AS DIA_SEM,
		SUM(CASE WHEN date_part('year',data) = 2012 THEN 1 ELSE 0 END) AS "2012", 
		SUM(CASE WHEN date_part('year',data) = 2013 THEN 1 ELSE 0 END) AS "2013",
		SUM(CASE WHEN date_part('year',data) = 2014 THEN 1 ELSE 0 END) AS "2014",
		SUM(CASE WHEN date_part('day', "data") > date_part('day',CURRENT_DATE) THEN NULL 
		ELSE (CASE WHEN date_part('year',data) = 2015 THEN 1 ELSE 0 END) END) AS "2015",
		"count"(*) AS TOTAL
from admgis.controle_mortes
WHERE subjetividade = 'CVLI'
AND cidade = 'Arapiraca'
AND date_part('MONTH',data) = 01
GROUP BY DIA_SEM
ORDER BY DIA_SEM

 

2ebfqs5.jpg

Edited by jamersondr

Share this post


Link to post
Share on other sites

--gerar uma sequencia no postgree

select row_number() over() as id
from information_schema.tables t
where id < 32


--gerar datas em sequencia

select  date '2001-12-31 + row_number() over() as datax
from information_schema.tables t
where id < 32



--gerar os "dia"

    SELECT CASE DATE_PART('DAY', DATAx)
    when 01 then '01'
    when 02 then '02'
    when 03 then '03'
    when 04 then '04'
    when 05 then '05'
    when 06 then '06'
    when 07 then '07'
    when 08 then '08'
    when 09 then '09'
    when 10 then '10'
    when 11 then '11'
    when 12 then '12'
    when 13 then '13'
    when 14 then '14'
    when 15 then '15'
    when 16 then '16'
    when 17 then '17'
    when 18 then '18'
    when 19 then '19'
    when 20 then '20'
    when 21 then '21'
    when 22 then '22'
    when 23 then '23'
    when 24 then '24'
    when 25 then '25'
    when 26 then '26'
    when 27 then '27'
    when 28 then '28'
    when 29 then '29'
    when 30 then '30'
    when 31 then '31' end AS DIA_SEM,
    0 AS "2012",
    0 "2013",
    0 AS "2014",
    0 AS "2015",
    0 AS (select  date '2001-09-28' + row_number() over() as datax
          from information_schema.tables t
          where id < 32)

-- union

    select dia_sem,
    sum(2012),
    sum(2013),
    sum(2014),
    sum(2015),
    sum(total)
    from
    (
    SELECT CASE DATE_PART('DAY', DATAx)
    when 01 then '01'
    when 02 then '02'
    when 03 then '03'
    when 04 then '04'
    when 05 then '05'
    when 06 then '06'
    when 07 then '07'
    when 08 then '08'
    when 09 then '09'
    when 10 then '10'
    when 11 then '11'
    when 12 then '12'
    when 13 then '13'
    when 14 then '14'
    when 15 then '15'
    when 16 then '16'
    when 17 then '17'
    when 18 then '18'
    when 19 then '19'
    when 20 then '20'
    when 21 then '21'
    when 22 then '22'
    when 23 then '23'
    when 24 then '24'
    when 25 then '25'
    when 26 then '26'
    when 27 then '27'
    when 28 then '28'
    when 29 then '29'
    when 30 then '30'
    when 31 then '31' end AS DIA_SEM,
    SUM(CASE WHEN date_part('year',data) = 2012 THEN 1 ELSE 0 END) AS "2012",
    SUM(CASE WHEN date_part('year',data) = 2013 THEN 1 ELSE 0 END) AS "2013",
    SUM(CASE WHEN date_part('year',data) = 2014 THEN 1 ELSE 0 END) AS "2014",
    SUM(CASE WHEN date_part('day', "data") > date_part('day',CURRENT_DATE) THEN NULL
    ELSE (CASE WHEN date_part('year',data) = 2015 THEN 1 ELSE 0 END) END) AS "2015",
    "count"(*) AS TOTAL
    from admgis.controle_mortes
    WHERE subjetividade = 'CVLI'
    AND cidade = 'Arapiraca'
    AND date_part('MONTH',data) = 01
    GROUP BY DIA_SEM
    union all
SELECT CASE DATE_PART('DAY', DATAx)
    when 01 then '01'
    when 02 then '02'
    when 03 then '03'
    when 04 then '04'
    when 05 then '05'
    when 06 then '06'
    when 07 then '07'
    when 08 then '08'
    when 09 then '09'
    when 10 then '10'
    when 11 then '11'
    when 12 then '12'
    when 13 then '13'
    when 14 then '14'
    when 15 then '15'
    when 16 then '16'
    when 17 then '17'
    when 18 then '18'
    when 19 then '19'
    when 20 then '20'
    when 21 then '21'
    when 22 then '22'
    when 23 then '23'
    when 24 then '24'
    when 25 then '25'
    when 26 then '26'
    when 27 then '27'
    when 28 then '28'
    when 29 then '29'
    when 30 then '30'
    when 31 then '31' end AS DIA_SEM,
    0 AS "2012",
    0 "2013",
    0 AS "2014",
    0 AS "2015",
    0 AS (select  date '2001-09-28' + row_number() over() as datax
          from information_schema.tables t
          where id < 32)
    ) group by DIA_SEM

Feito no notepad , não tive como testar ....

Share this post


Link to post
Share on other sites

--gerar uma sequencia no postgree

 

select row_number() over() as id
from information_schema.tables t
where id < 32

--gerar datas em sequencia

 

select  date '2001-12-31 + row_number() over() as datax
from information_schema.tables t
where id < 32

 

--gerar os "dia"

 

    SELECT CASE DATE_PART('DAY', DATAx)
    when 01 then '01'
    when 02 then '02'
    when 03 then '03'
    when 04 then '04'
    when 05 then '05'
    when 06 then '06'
    when 07 then '07'
    when 08 then '08'
    when 09 then '09'
    when 10 then '10'
    when 11 then '11'
    when 12 then '12'
    when 13 then '13'
    when 14 then '14'
    when 15 then '15'
    when 16 then '16'
    when 17 then '17'
    when 18 then '18'
    when 19 then '19'
    when 20 then '20'
    when 21 then '21'
    when 22 then '22'
    when 23 then '23'
    when 24 then '24'
    when 25 then '25'
    when 26 then '26'
    when 27 then '27'
    when 28 then '28'
    when 29 then '29'
    when 30 then '30'
    when 31 then '31' end AS DIA_SEM,
    0 AS "2012",
    0 "2013",
    0 AS "2014",
    0 AS "2015",
    0 AS (select  date '2001-09-28' + row_number() over() as datax
          from information_schema.tables t
          where id < 32)

-- union

    select dia_sem,
    sum(2012),
    sum(2013),
    sum(2014),
    sum(2015),
    sum(total)
    from
    (
    SELECT CASE DATE_PART('DAY', DATAx)
    when 01 then '01'
    when 02 then '02'
    when 03 then '03'
    when 04 then '04'
    when 05 then '05'
    when 06 then '06'
    when 07 then '07'
    when 08 then '08'
    when 09 then '09'
    when 10 then '10'
    when 11 then '11'
    when 12 then '12'
    when 13 then '13'
    when 14 then '14'
    when 15 then '15'
    when 16 then '16'
    when 17 then '17'
    when 18 then '18'
    when 19 then '19'
    when 20 then '20'
    when 21 then '21'
    when 22 then '22'
    when 23 then '23'
    when 24 then '24'
    when 25 then '25'
    when 26 then '26'
    when 27 then '27'
    when 28 then '28'
    when 29 then '29'
    when 30 then '30'
    when 31 then '31' end AS DIA_SEM,
    SUM(CASE WHEN date_part('year',data) = 2012 THEN 1 ELSE 0 END) AS "2012",
    SUM(CASE WHEN date_part('year',data) = 2013 THEN 1 ELSE 0 END) AS "2013",
    SUM(CASE WHEN date_part('year',data) = 2014 THEN 1 ELSE 0 END) AS "2014",
    SUM(CASE WHEN date_part('day', "data") > date_part('day',CURRENT_DATE) THEN NULL
    ELSE (CASE WHEN date_part('year',data) = 2015 THEN 1 ELSE 0 END) END) AS "2015",
    "count"(*) AS TOTAL
    from admgis.controle_mortes
    WHERE subjetividade = 'CVLI'
    AND cidade = 'Arapiraca'
    AND date_part('MONTH',data) = 01
    GROUP BY DIA_SEM
    union all
SELECT CASE DATE_PART('DAY', DATAx)
    when 01 then '01'
    when 02 then '02'
    when 03 then '03'
    when 04 then '04'
    when 05 then '05'
    when 06 then '06'
    when 07 then '07'
    when 08 then '08'
    when 09 then '09'
    when 10 then '10'
    when 11 then '11'
    when 12 then '12'
    when 13 then '13'
    when 14 then '14'
    when 15 then '15'
    when 16 then '16'
    when 17 then '17'
    when 18 then '18'
    when 19 then '19'
    when 20 then '20'
    when 21 then '21'
    when 22 then '22'
    when 23 then '23'
    when 24 then '24'
    when 25 then '25'
    when 26 then '26'
    when 27 then '27'
    when 28 then '28'
    when 29 then '29'
    when 30 then '30'
    when 31 then '31' end AS DIA_SEM,
    0 AS "2012",
    0 "2013",
    0 AS "2014",
    0 AS "2015",
    0 AS (select  date '2001-09-28' + row_number() over() as datax
          from information_schema.tables t
          where id < 32)
    ) group by DIA_SEM

Feito no notepad , não tive como testar ....

Motta muito obrigado pela atenção.

Já no primeiro select dá este erro:

 

Erro de SQL:

ERROR: syntax error at or near "over"

LINE 1: select row_number() over() as id

^

Daí as demais SQL não funcionam. Meu Postgres é 8.3.8.

Share this post


Link to post
Share on other sites

Tente ...

 

 

 

0 AS "2014",

0 AS "2015",

0 AS (select date '2001-09-28' + row_number() over() as datax

from information_schema.tables t

where row_number() over() < 32)

...

 

 

Mas não estou certo

Share this post


Link to post
Share on other sites

Tente ...

 

 

 

0 AS "2014",

0 AS "2015",

0 AS (select date '2001-09-28' + row_number() over() as datax

from information_schema.tables t

where row_number() over() < 32)

...

 

 

Mas não estou certo

Motta também não funcionou. Eu preciso que os dias que estão zerados nos 4 anos apareçam no resultado. Eu já consegui resolver para trazer null ao invés de 0 nos dias apartir da data de hoje até o fim do mês, para o ano de 2015. Mas como por exemplo no dia 4, 10, 12 não tiveram registros, os mesmos não são listados.

Eu fiz algumas alterações e talvez agora fique mais fácil para me ajudar. O que eu preciso agora é que os dias após a data de hoje apareçam como NULL para o ano somente de 2015, por exemplo hoje é dia 19, dessa forma do dia 20 ao 31, no ano de 2015, os valores devem ser NULL. Abaixo está o código e o resultado.

SELECT date_part('year', data) as ano, 
		SUM(CASE WHEN date_part('day',data) = 1 THEN 1 ELSE 0 END)AS "01",
		SUM(CASE WHEN date_part('day',data) = 2 THEN 1 ELSE 0 END)AS "02",
		SUM(CASE WHEN date_part('day',data) = 3 THEN 1 ELSE 0 END)AS "03",
		SUM(CASE WHEN date_part('day',data) = 4 THEN 1 ELSE 0 END)AS "04",
		SUM(CASE WHEN date_part('day',data) = 5 THEN 1 ELSE 0 END)AS "05",
		SUM(CASE WHEN date_part('day',data) = 6 THEN 1 ELSE 0 END)AS "06",
		SUM(CASE WHEN date_part('day',data) = 7 THEN 1 ELSE 0 END)AS "07",
		SUM(CASE WHEN date_part('day',data) = 8 THEN 1 ELSE 0 END)AS "08",	
		SUM(CASE WHEN date_part('day',data) = 9 THEN 1 ELSE 0 END)AS "09",
		SUM(CASE WHEN date_part('day',data) = 10 THEN 1 ELSE 0 END)AS "10",
		SUM(CASE WHEN date_part('day',data) = 11 THEN 1 ELSE 0 END)AS "11",
		SUM(CASE WHEN date_part('day',data) = 12 THEN 1 ELSE 0 END)AS "12",
		SUM(CASE WHEN date_part('day',data) = 13 THEN 1 ELSE 0 END)AS "13",
		SUM(CASE WHEN date_part('day',data) = 14 THEN 1 ELSE 0 END)AS "14",
		SUM(CASE WHEN date_part('day',data) = 15 THEN 1 ELSE 0 END)AS "15",
		SUM(CASE WHEN date_part('day',data) = 16 THEN 1 ELSE 0 END)AS "16",
		SUM(CASE WHEN date_part('day',data) = 17 THEN 1 ELSE 0 END)AS "17",
		SUM(CASE WHEN date_part('day',data) = 18 THEN 1 ELSE 0 END)AS "18",
		SUM(CASE WHEN date_part('day',data) = 19 THEN 1 ELSE 0 END)AS "19",
		SUM(CASE WHEN date_part('day',data) = 20 THEN 1 ELSE 0 END)AS "20",
		SUM(CASE WHEN date_part('day',data) = 21 THEN 1 ELSE 0 END)AS "21",
		SUM(CASE WHEN date_part('day',data) = 22 THEN 1 ELSE 0 END)AS "22",
		SUM(CASE WHEN date_part('day',data) = 23 THEN 1 ELSE 0 END)AS "23",
		SUM(CASE WHEN date_part('day',data) = 24 THEN 1 ELSE 0 END)AS "24",
		SUM(CASE WHEN date_part('day',data) = 25 THEN 1 ELSE 0 END)AS "25",
		SUM(CASE WHEN date_part('day',data) = 26 THEN 1 ELSE 0 END)AS "26",
		SUM(CASE WHEN date_part('day',data) = 27 THEN 1 ELSE 0 END)AS "27",
		SUM(CASE WHEN date_part('day',data) = 28 THEN 1 ELSE 0 END)AS "28",
		SUM(CASE WHEN date_part('day',data) = 29 THEN 1 ELSE 0 END)AS "29",
		SUM(CASE WHEN date_part('day',data) = 30 THEN 1 ELSE 0 END)AS "30",
		SUM(CASE WHEN date_part('day',data) = 31 THEN 1 ELSE 0 END)AS "31",
COUNT(*) as Total
from admgis.controle_mortes
WHERE subjetividade = 'CVLI'
AND date_part('MONTH',data) = 01
AND UPPER(cidade) = 'ARAPIRACA'
GROUP BY ano
ORDER BY ano;

1sfuao.jpg

Share this post


Link to post
Share on other sites

Atente que o union que acrescentei é para trazer uma série "fajuta" de datas , manipule este sql para o intervalo de data requerido.

select  date '2011-12-31 + row_number() over() as datax
from information_schema.tables t
where id < ((365 * 4)+1)

Estas datas são geradas zeradas para somar as datas existentes , se a data existir na série não é alterada pois se soma zero, se não existir aparece como 0.

Share this post


Link to post
Share on other sites

Atente que o union que acrescentei é para trazer uma série "fajuta" de datas , manipule este sql para o intervalo de data requerido.

select  date '2011-12-31 + row_number() over() as datax
from information_schema.tables t
where id < ((365 * 4)+1)

Estas datas são geradas zeradas para somar as datas existentes , se a data existir na série não é alterada pois se soma zero, se não existir aparece como 0.

Esse select que você citou que cria a série "fajuta", seria para eu tentar trazer NULL nesta última SQL que passei?

Share this post


Link to post
Share on other sites

Quase isto , trazer todas as datas da série com valores zerados , com o UNION e um SUM , todas as datas sairiam no sql.

 

 

Uma forma de fazer , veja outras ideais aqui.

Share this post


Link to post
Share on other sites

Quase isto , trazer todas as datas da série com valores zerados , com o UNION e um SUM , todas as datas sairiam no sql.

 

 

Uma forma de fazer , veja outras ideais aqui.

Motta eu dei uma lida nas ideias que você me indicou mas não enxerguei uma saída, seria mais viável eu criar outro tópico somente com esta última Sql que criei e solicitar ajuda para trazer NULL nos dias da data de hoje em diante?

Share this post


Link to post
Share on other sites

Talvez não , a questão é que não sei a síntaxe exta do PG e não tenho instalado para testar

 

mas tente :

 

Fazer a sql de "data fajuta" funcionar gerando datas e após isto tentar o UNION

 

Digo que está técnica funciona pois já fiz diversas vezes em Oracle.

Share this post


Link to post
Share on other sites

Motta essa foi a solução encontrada. Agora traz os dias NULL do dia atual até o final do mês.

SELECT date_part('year', data)as ano	, 
SUM(CASE WHEN date_part('day',data) = '1' THEN 1 ELSE (CASE WHEN ('1' <= date_part('day', now()) OR date_part('year', now()) <> date_part('year', data)) THEN 0 ELSE null END) END) AS "01",
SUM(CASE WHEN date_part('day',data) = '2' THEN 1 ELSE (CASE WHEN ('2' <= date_part('day', now()) OR date_part('year', now()) <> date_part('year', data)) THEN 0 ELSE null END) END) AS "02",
SUM(CASE WHEN date_part('day',data) = '3' THEN 1 ELSE (CASE WHEN ('3' <= date_part('day', now()) OR date_part('year', now()) <> date_part('year', data)) THEN 0 ELSE null END) END) AS "03",
SUM(CASE WHEN date_part('day',data) = '4' THEN 1 ELSE (CASE WHEN ('4' <= date_part('day', now()) OR date_part('year', now()) <> date_part('year', data)) THEN 0 ELSE null END) END) AS "04",
SUM(CASE WHEN date_part('day',data) = '5' THEN 1 ELSE (CASE WHEN ('5' <= date_part('day', now()) OR date_part('year', now()) <> date_part('year', data)) THEN 0 ELSE null END) END) AS "05",
SUM(CASE WHEN date_part('day',data) = '6' THEN 1 ELSE (CASE WHEN ('6' <= date_part('day', now()) OR date_part('year', now()) <> date_part('year', data)) THEN 0 ELSE null END) END) AS "06",
SUM(CASE WHEN date_part('day',data) = '7' THEN 1 ELSE (CASE WHEN ('7' <= date_part('day', now()) OR date_part('year', now()) <> date_part('year', data)) THEN 0 ELSE null END) END) AS "07",
SUM(CASE WHEN date_part('day',data) = '8' THEN 1 ELSE (CASE WHEN ('8' <= date_part('day', now()) OR date_part('year', now()) <> date_part('year', data)) THEN 0 ELSE null END) END) AS "08",
SUM(CASE WHEN date_part('day',data) = '9' THEN 1 ELSE (CASE WHEN ('9' <= date_part('day', now()) OR date_part('year', now()) <> date_part('year', data)) THEN 0 ELSE null END) END) AS "09",
SUM(CASE WHEN date_part('day',data) = '10' THEN 1 ELSE (CASE WHEN ('10' <= date_part('day', now()) OR date_part('year', now()) <> date_part('year', data)) THEN 0 ELSE null END) END) AS "10",
SUM(CASE WHEN date_part('day',data) = '11' THEN 1 ELSE (CASE WHEN ('11' <= date_part('day', now()) OR date_part('year', now()) <> date_part('year', data))THEN 0 ELSE null END) END) AS "11",
SUM(CASE WHEN date_part('day',data) = '12' THEN 1 ELSE (CASE WHEN ('12' <= date_part('day', now()) OR date_part('year', now()) <> date_part('year', data)) THEN 0 ELSE null END) END) AS "12",
SUM(CASE WHEN date_part('day',data) = '13' THEN 1 ELSE (CASE WHEN ('13' <= date_part('day', now()) OR date_part('year', now()) <> date_part('year', data)) THEN 0 ELSE null END) END) AS "13",
SUM(CASE WHEN date_part('day',data) = '14' THEN 1 ELSE (CASE WHEN ('14' <= date_part('day', now()) OR date_part('year', now()) <> date_part('year', data)) THEN 0 ELSE null END) END) AS "14",
SUM(CASE WHEN date_part('day',data) = '15' THEN 1 ELSE (CASE WHEN ('15' <= date_part('day', now()) OR date_part('year', now()) <> date_part('year', data)) THEN 0 ELSE null END) END) AS "15",
SUM(CASE WHEN date_part('day',data) = '16' THEN 1 ELSE (CASE WHEN ('16' <= date_part('day', now()) OR date_part('year', now()) <> date_part('year', data)) THEN 0 ELSE null END) END) AS "16",
SUM(CASE WHEN date_part('day',data) = '17' THEN 1 ELSE (CASE WHEN ('17' <= date_part('day', now()) OR date_part('year', now()) <> date_part('year', data)) THEN 0 ELSE null END) END) AS "17",
SUM(CASE WHEN date_part('day',data) = '18' THEN 1 ELSE (CASE WHEN ('18' <= date_part('day', now()) OR date_part('year', now()) <> date_part('year', data)) THEN 0 ELSE null END) END) AS "18",
SUM(CASE WHEN date_part('day',data) = '19' THEN 1 ELSE (CASE WHEN ('19' <= date_part('day', now()) OR date_part('year', now()) <> date_part('year', data)) THEN 0 ELSE null END) END) AS "19",
SUM(CASE WHEN date_part('day',data) = '20' THEN 1 ELSE (CASE WHEN ('20' <= date_part('day', now()) OR date_part('year', now()) <> date_part('year', data)) THEN 0 ELSE null END) END) AS "20",
SUM(CASE WHEN date_part('day',data) = '21' THEN 1 ELSE (CASE WHEN ('21' <= date_part('day', now()) OR date_part('year', now()) <> date_part('year', data))THEN 0 ELSE null END) END) AS "21",
SUM(CASE WHEN date_part('day',data) = '22' THEN 1 ELSE (CASE WHEN ('22' <= date_part('day', now()) OR date_part('year', now()) <> date_part('year', data)) THEN 0 ELSE null END) END) AS "22",
SUM(CASE WHEN date_part('day',data) = '23' THEN 1 ELSE (CASE WHEN ('23' <= date_part('day', now()) OR date_part('year', now()) <> date_part('year', data))THEN 0 ELSE null END) END) AS "23",
SUM(CASE WHEN date_part('day',data) = '24' THEN 1 ELSE (CASE WHEN ('24' <= date_part('day', now()) OR date_part('year', now()) <> date_part('year', data)) THEN 0 ELSE null END) END) AS "24",
SUM(CASE WHEN date_part('day',data) = '25' THEN 1 ELSE (CASE WHEN ('25' <= date_part('day', now()) OR date_part('year', now()) <> date_part('year', data)) THEN 0 ELSE null END) END) AS "25",
SUM(CASE WHEN date_part('day',data) = '26' THEN 1 ELSE (CASE WHEN ('26' <= date_part('day', now()) OR date_part('year', now()) <> date_part('year', data)) THEN 0 ELSE null END) END) AS "26",
SUM(CASE WHEN date_part('day',data) = '27' THEN 1 ELSE (CASE WHEN ('27' <= date_part('day', now()) OR date_part('year', now()) <> date_part('year', data)) THEN 0 ELSE null END) END) AS "27",
SUM(CASE WHEN date_part('day',data) = '28' THEN 1 ELSE (CASE WHEN ('28' <= date_part('day', now()) OR date_part('year', now()) <> date_part('year', data)) THEN 0 ELSE null END) END) AS "28",
SUM(CASE WHEN date_part('day',data) = '29' THEN 1 ELSE (CASE WHEN ('29' <= date_part('day', now()) OR date_part('year', now()) <> date_part('year', data)) THEN 0 ELSE null END) END) AS "29",
SUM(CASE WHEN date_part('day',data) = '30' THEN 1 ELSE (CASE WHEN ('30' <= date_part('day', now()) OR date_part('year', now()) <> date_part('year', data)) THEN 0 ELSE null END) END) AS "30",
SUM(CASE WHEN date_part('day',data) = '31' THEN 1 ELSE (CASE WHEN ('31' <= date_part('day', now()) OR date_part('year', now()) <> date_part('year', data)) THEN 0 ELSE null END) END) AS "31",
COUNT(*) as Total
from controle_mortes
WHERE subjetividade = 'CVLI'
AND date_part('MONTH', data) = 01
AND UPPER(cidade) = 'ARAPIRACA'
GROUP BY ano
ORDER BY ano;

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.