terça-feira, 11 de fevereiro de 2014

Funções de agregação em SQL




SQL (Structured Query Language) - Linguagem de Consulta Estruturada é uma linguagem usada para dar manutenção nos dados em um bancos de dados (Oracle, Sybase e MS SQL Server) para permitir a extração dos dados armazenados como para inserir novos dados ou atualizar. aqueles já existentes. A primeira versão da sintaxe foi padronizada em 1986 e a última revisão foi aprovada pelo ISO em 2008.

Funções de agregação, são funções nativas de consulta que servem para agrupar informações, agregando numa única linha o conteúdo de vários registros. Dessa forma, os detalhes da informação original são postos de lado e as informações são tratadas em conjunto.

Atualmente, as funções de agregação disponíveis no SQL são as seguintes: AVG (calcula a média dos valores de um campo determinado), COUNT (retorna a quantidade de registros existentes), SUM (calcula a soma dos valores de um determinado campo), MAX (retorna o maior valor existente para um campo especificado) e MIN (retorna o menor valor existente para um campo especificado). Todas essas funções são aplicadas apenas aos registros que atenderem os critérios estabelecidos na cláusula WHERE da query onde estiverem sendo usadas.

Pode parecer confuso a princípio mas o conceito de agregação é, na verdade, bastante simples. Considere o seguinte conjunto de registros existente numa tabela no banco de dados:

São várias as funções de grupo que são implementadas pelo padrão SQL. Vejamos apenas algumas:

SUM()*
Soma valores de um campo
AVG()*
Média dos valores de um campo
COUNT()*
Retorna a quantidade de registros
MAX()
Retorna o maior valor de um campo
MIN()
Retorna o menor valor de um campo

 

 


 

quarta-feira, 23 de outubro de 2013

Formatando Datas com string.Format
 
Conteúdo desenvolvido utilizando a linguagem C#
 
 
Neste artigo irei demostrar como podemos formatar utilizando o tipo de dados DateTime utilizando  o String.Format.
 
Em algum momento você irá utilizar o tipo de dados DateTime, quer por passas via código um valor desse tipo ou obter de uma tabela no seu banco de dados. Neste caso, existem algumas formas de alterarmos o valor padrão de datas.
 
Entretanto, no exemplo de hoje iremos utilizar a classe String.Format. Esta classe nos permitirá personalizar a saída padrão da data.
 
Para criar os formatos de data customizados, usamos algumas letras específicas onde cada letra significa uma parte da data.
  • y (ano);
  • M (mês);
  • d (dia);
  • h (hora 12);
  • H (hora 24);
  • m (minuto);
  • s (segundo);
  • f (fração de segundo)
  • F (fração de segundo, mostrando zeros após a unidade inteira ex: 0.2000);
  • t (P.M ou A.M);
  • z (time zone).
 

Existem alguns formatos que o .net já possuí pré-definido para se ajustar conforme as configurações de localidade do sistema operacional:

 

Especificador

Tipo

Formato

Saída
(Ex.: Tipo double 1.2345)

Saída
(Ex.: Tipo int -12345)

c

Currency (Moeda)

{0:c}

£1.23

-£12,345.00

d

Decimal

{0:d}

System.FormatException

-12345

e

Exponencial / Formatação científica

{0:e}

1.234500e+000

-1.234500e+004

f

Ponto fixo

{0:f}

1.23

-12345.00

g

Generalizada

{0:g}

1.2345

-12345

n

Numérica

{0:n}

1.23

-12,345.00

r

Arredondado

{0:r}

1.23

System.FormatException

x

Hexadecimal

{0:x4}

System.FormatException

ffffcfc7



Especificador

Tipo

Formato

Saída
(Ex.: Tipo double 1234.56)

0

Completar com zeros

{0:00.000}

1234.560

#

Máscarar um número

{0:#.##}

1234.56

.

Posicionar o separador de decimal

{0:0.0}

1234.6

,

Posicionar o separador de milhar

{0:0,0}

1,235

%

Porcentagem

{0:0%}

123456%

specificador
Tipo
Saída
(Ex.: 19 de Setembro de 1980 14:30:59)
d
Data curta
19/09/1980
D
Data long
19 Setembro 1980
t
Hora Curta
14:30
T
Hora Longa
14:30:59
f
Data e Hora
19 Setembro 1980 14:30
F
Data e Hora completo
19 Setembro 1980 14:30:59
g
Data de Hora padrão
19/09/1980 14:30
G
Data de Hora padrão longo
19/09/1980 14:30:59
M
Dia / Mês
19 Setembro
r
Sex, 19 Set 1980 14:30:59 GMT
s
Sortable data/hora
1980-09-19T14:30:59
u
Hora Universal, Timezone local
1980-09-19 14:30:59Z
Y
Mês / Ano
Setembro 1980
 
Especificador
Tipo
Saída
(Ex.: Setembro 19, 1980 14:30:59)
dd
Dia
19
ddd
Nome curto do dia
Sex
dddd
Nome completo do dia
Sexta-feira
hh
2 dígitos para a hora
02
HH
2 dígitos para a hora (24 horas)
14
mm
2 dígitos para o minuto
30
MM
Mês
09
MMM
Nome curto do Mês
Set
MMMM
Nome do Mês
Setembro
ss
Segundos
59
tt
AM/PM
PM
yy
2 dígitos do Ano
80
yyyy
4 dígitos do Ano
1980
:
Separador, ex. {0:hh:mm:ss}
14:30:59
/
Seperator, ex. {0:dd/MM/yyyy}
08/06/1970
 
Vejam alguns exemplos de como você poderá utilizar os tipos mostrados anteriormente:
 
Abaixo irei mostrar alguns exemplos de uso de Format, que poderão ajudar na leitura rápida: 
int Valor = 803;
string Formato1 = String.Format("{0:C}", Valor); //Moeda
string Formato2 = String.Format("{0:C8}", Valor); //Moeda com 8 casas decimais
string Formato3 = String.Format("{0:D}", Valor); //Decimal
string Formato4 = String.Format("{0:D15}", Valor); //Decimal com 15 posições
string Formato5 = String.Format("{0:E}", Valor); //Exponencial XXX.XXXe+xxx
string Formato6 = String.Format("{0:F}", Valor); //Ponto Fixo
string Formato7 = String.Format("{0:G}", Valor); //Formato Geral ou Científico
string Formato8 = String.Format("{0:N}", Valor); //Numérico
string Formato9 = String.Format("{0:N7}", Valor); //Numérico com 7 casas decimais
string Formato10 = String.Format("{0:X}", Valor); //Representação Hexadecimal
string Formato11 = String.Format("{0:x}", Valor); //Representação Hexadecimal também
long CNPJ = 05662546000135;
string CNPJFormatado = String.Format(@"{0:00\.000\.000\/0000\-00}", CNPJ); //Formatar de Long para CNPJ
long RG = 305617853;
string RGFormatado = String.Format(@"{0:00\.000\.000\-0}", RG);