Complex Views são views que são criadas a partir de consultas SQL avançadas e sofisticadas. Essas views podem envolver múltiplas tabelas, subconsultas, agregações, funções, joins complicados, ou cálculos. Enquanto as Simple Views são usadas para simplificar o acesso a dados básicos, Complex Views são utilizadas para encapsular lógica de negócios mais elaborada e combinar dados de várias fontes em um único conjunto de resultados.

Características das Complex Views

  1. Múltiplas Tabelas: Complex Views frequentemente combinam dados de várias tabelas usando JOINs.
  2. Agregações: Elas podem incluir funções agregadas como SUM(), AVG(), COUNT(), etc., para calcular totais, médias, contagens e outras métricas.
  3. Subconsultas: Podem incluir subconsultas dentro da definição da view.
  4. Filtragem Avançada: Podem aplicar filtros complexos para exibir apenas os dados que atendem a múltiplas condições.
  5. Cálculos e Expressões: Permitem incluir colunas calculadas ou aplicar expressões que derivam novos valores a partir dos dados existentes.

Como Criar uma Complex View

A criação de uma Complex View segue a mesma sintaxe básica de uma Simple View, mas a consulta subjacente é muito mais elaborada. Veja um exemplo:

Exemplo: Suponha que temos as seguintes tabelas em um sistema de vendas:

Objetivo: Criar uma Complex View que mostre o total de vendas por cliente, incluindo a contagem de produtos diferentes que cada cliente comprou e o valor médio de cada venda.

CREATE VIEW View_Total_Vendas_Clientes AS
SELECT
    c.id_cliente,
    c.nome_cliente,
    c.cidade,
    COUNT(DISTINCT iv.id_produto) AS total_produtos_comprados,
    SUM(v.valor_total) AS total_gasto,
    AVG(v.valor_total) AS media_valor_venda
FROM
    Clientes c
JOIN
    Vendas v ON c.id_cliente = v.id_cliente
JOIN
    Itens_Venda iv ON v.id_venda = iv.id_venda
GROUP BY
    c.id_cliente, c.nome_cliente, c.cidade;

Explicação: