• Nenhum resultado encontrado

Linguagem SQL Comando SELECT Agrupamento de Resultados

N/A
N/A
Protected

Academic year: 2022

Share "Linguagem SQL Comando SELECT Agrupamento de Resultados"

Copied!
12
0
0

Texto

(1)

Linguagem SQL

Comando SELECT

Agrupamento de Resultados

Bases de Dados

BDDAD

(2)

▪ Introdução

▪ Funções de Agregação Básicas

▪ COUNT

▪ SUM

▪ MIN

▪ MAX

▪ AVG

▪ Cláusulas de Agrupamento

▪ GROUP BY

▪ HAVING

Sumário

Agrupamento

(3)

Interesse

▪ Obter informação agregada (i.e.,resumida)

…sobre grupos deregistosdo resultadode um SELECT.

▪ Exemplo

▪ Tabela Empregado

▪ Total de empregados por localidade

Agrupamento de Resultados

Cláusula GROUP BY:

▪ Especifica agrupamento pela localidade.

▪ Resultado dividido em grupos pela localidade.

Função de Agregação COUNT:

▪ Conta os registos de cada grupo.

Agrupamento

Grupo Lisboa Grupo Porto Grupo Braga

(4)

Funções

Aplicadas a umasimples coluna duma tabela.

Retornam umsimplesvalor.

Interesse

▪ Obter informação agregada (i.e., resumida) sobre:

▪ Grupo único de registos

▪ Grupos de registos …especificados na cláusula GROUP BY

Exemplo

▪ Função COUNT

▪ Tabela: EMPREGADO( ..., NOME, ..., LOCALIDADE, ...)

▪ Informação agregada detodos os registos (grupo único)

▪ Informação agregada de cadagrupo de registos

Funções de Agregação

1/4

NULL ignorado

Funções de Agregação podem ser aplicadas a:

• grupo único (sem GROUP BY)

• vários grupos (com GROUP BY)

Nome coluna alterado Agrupamento

(5)

Tipos Mais Vulgares

Funções de Agregação

2/4

Função Formato Resultado Observação

COUNT COUNT(*) Númerototal de registos do

resultado/grupo de resultados do SELECT COUNT(coluna) Númerode valores diferentes de NULL na

coluna especificada.

Ignora NULL COUNT (DISTINCTcoluna) Númerode valores diferentes na coluna

especificada.

Não conta repetidos

Ignora NULL

MAX MAX(coluna) Maiorvalor da coluna especificada. Aplicada também a colunas do tipo string, usando uma comparação alfabética.

Ignora NULL MIN MIN(coluna) Menorvalor da coluna especificada.

SUM SUM(coluna) Somados valores da coluna especificada. Aplicáveis apenas a colunas numéricas.

Ignora NULL AVG AVG(coluna) Médiados valores da coluna especificada.

Funções aplicadas a uma simples

coluna

Palavra-reservadaDISTINCT

Para eliminar duplicados antes de aplicar função

Pode ser usado em todas as funções

Especificada antes do nome da coluna

Como no exemplo do COUNT Agrupamento

(6)

Exemplos

Funções de Agregação

3/4

DISTINCT ignora NULL

▪ Possível aplicar múltiplas funções.

▪ Mostrada um linha de resultados.

Agrupamento

(7)

Legal nas Cláusulas

▪ SELECT

▪ HAVING

Ilegal

▪ Na cláusula WHERE …como operando

▪ Exemplo

▪ Solução

▪ Com SELECT encaixado (subquery)

▪ Na cláusula SELECT

▪ Lista de colunas (fora de funções) juntamente com funções de agregação sem GROUP BY para agrupar os dados,conjuntamente.

▪ Exemplo:

Funções de Agregação

4/4 Agrupamento

(8)

Cláusulas

▪ GROUP BY // divide resultado de queryem múltiplos grupos de registos

▪ HAVING // filtra grupos da tabela resultante da query

Cláusulas de Agrupamento

Agrupamento

SELECT [ ALL | DISTINCT ] <lista select>

FROM <lista de tabela>

[WHERE <condição_where>]

[GROUP BY <lista groupby>]

[HAVING <condição having>]

[ORDER BY <lista orderby> [ DESC | ASC ] ]

(9)

Sintaxe

Interesse

▪ Agrupar informação

▪ Dividir o resultado de um SELECT …em grupos de resultados …

…para serem processados por funções de agregação.

Deve Especificar

▪ Todas as colunas especificadas no SELECT …excetocolunas em funções de agregação

▪ Razão: SGBD precisa de saber como agrupar o resultado do SELECT

Cada Elemento do SELECT

▪ Deve ser umsimples valor …para cada grupo

Valores NULL

▪ Também são agrupados numa coluna

Com Cláusula WHERE

▪ WHERE é executado em 1º

▪ Grupos formados depois com os registos selecionados pelo WHERE

Cláusula GROUP BY

1/2 Agrupamento

SELECT [ ALL | DISTINCT ] <lista select>

FROM <lista de tabela>

[WHERE <condição_where>]

[GROUP BY <lista groupby>]

[HAVING <condição having>]

[ORDER BY <lista orderby> [ DESC | ASC ] ]

Colunas do GRUPO BY:

▪ Não têm de existir no SELECT.

<lista groupby> ::= { table_name| view_name | table_alias}.* | { column_name expression }, [, …n]

(10)

Exemplos

Cláusula GROUP BY

2/2 Agrupamento

Tabela PREMIO

Localidade em SELECT permitido porque tem 1 valor por grupo

(11)

Criada

▪ Para trabalhar conjuntamente com GROUP BY

Sintaxe

Interesse

▪ Restringir os grupos que surgem no resultado final

▪ i.e. filtrar grupos

Aplicada

▪ Sobre os resultados dos grupos

Nomes de colunas

▪ Incluídas em GROUP BY

Ou …usadas em funções de agregação

Condição

▪ Inclui sempre …pelo menos uma funçãode agregação

▪ Senão…pode ser colocada em WHERE

Cláusula HAVING

1/2 Agrupamento

SELECT [ ALL | DISTINCT ] <lista select>

FROM <lista de tabela>

[WHERE <condição_where>]

[GROUP BY <lista groupby>]

[HAVING <condição having>]

[ORDER BY <lista orderby> [ DESC | ASC ] ]

Colunas do GRUPO BY:

▪ Não têm de existir no SELECT.

<condição having> ::= condição com expressões, constantes ou colunas incluídasna <lista groupby>

(12)

Exemplos

Cláusula HAVING

2/2 Agrupamento

Referências

Documentos relacionados

considerado sujeito de direito, pois era propriedade do dominus. O trabalho escravo continuava no tempo, de modo indefinido, mais precisamente enquanto o escravo vivesse ou deixasse

O que nos importa saber ao fi nal deste capítulo inicial é que a educação é o processo por meio do qual o homem tem desenvolvidas as habilidades, nas mais variadas dimensões de

De forma bem abrangente, pode-se delimitar algumas destas modalidades como descrito abaixo MACHADO, 2005: - turismo de natureza – a prática da atividade turística que decorre

Outras cláusulas que o comando select apresenta são DISTINCT, ORDER BY, GROUP BY, INNER JOIN, entre outras.. DISTINCT: Várias linhas de uma tabela podem conter os mesmos valores

§ 1º - A pessoa jurídica de que trata o caput deste artigo, relativamente às atividades de informática e automação, poderá deduzir, para efeito de apuração do lucro real e

As Palavras Eugénio de Andrade in As Palavras Interditas - Até Amanhã.. Apesar de o fenômeno clínico do cutting estar contemplado pelas categorias de automutilação e

Pelo gráfico mostrado na Figura 4, conclui-se que os produtos Poliglicerol a 1% e a 3% e o glicerol são caracterizados como fluidos dilatantes com

From Relational Algebra to SQL PROJECT operation =&gt; SELECT clause of a query.. SELECT DISTINCT Sex, Salary FROM