sexta-feira, 25 de março de 2011

Como extrair o dia da semana de uma data no PostgreSQL

As vezes necessitamos criar estatísticas pelo dia da semana, como por exemplo, a quantidade de vendas por dia da semana, ou o valor das vendas por dia da semana, sendo assim deixo registrado um SELECT simples para executar esta tarefa no PostgreSQL, veja:

  1: SELECT EXTRACT( DOW FROM emissao) AS DiaSemanaN,
  2:        CASE EXTRACT( DOW FROM emissao)
  3:             WHEN 0 THEN 'Domingo'
  4:             WHEN 1 THEN 'Segunda'
  5:             WHEN 2 THEN 'Terça'
  6:             WHEN 3 THEN 'Quarta'
  7:             WHEN 4 THEN 'Quinta'
  8:             WHEN 5 THEN 'Sexta'
  9:             WHEN 6 THEN 'Sábado'
 10:        END AS DiaSemana,
 11:        Count(*) AS QtdeVenda
 12:   FROM venda
 13:  GROUP BY 1,2


www.unimake.com.br

2 comentários:

  1. Interessante o SELECT. Como poderia fazer para mostrar o analítico pois este exemplo é o sintético. Obrigado;

    ResponderExcluir
    Respostas
    1. Bom dia, se eu entendi sua necessidade, o que você quer é visualizar venda a venda por dia da semana, se for isso, basta não agrupar os valores, ficando o comando assim:

      SELECT EXTRACT( DOW FROM emissao) AS DiaSemanaN,
      CASE EXTRACT( DOW FROM emissao)
      WHEN 0 THEN 'Domingo'
      WHEN 1 THEN 'Segunda'
      WHEN 2 THEN 'Terça'
      WHEN 3 THEN 'Quarta'
      WHEN 4 THEN 'Quinta'
      WHEN 5 THEN 'Sexta'
      WHEN 6 THEN 'Sábado'
      END AS DiaSemana,
      '1' AS Dados da venda
      FROM venda

      Excluir