1
resposta

NUMERAÇÃO DE LINHAS

Nessa consulta
"SELECT f.nome as Nome_Fornecedor, count(iv.produto_id) as QTD_Vendas
FROM itens_venda iv
JOIN produtos p on p.id_produto = iv.produto_id
JOIN fornecedores f on f.id_fornecedor = p.fornecedor_id
GROUP BY Nome_Fornecedor
ORDER BY QTD_Vendas DESC"

, como faço para incluir uma coluna para numerar as linhas?

1 resposta

Olá Mairon, tudo bem?

Para incluir uma numeração sequencial (1, 2, 3...) no seu resultado, a forma mais simples é utilizar a função ROW_NUMBER():

SELECT 
    ROW_NUMBER() OVER (ORDER BY COUNT(iv.produto_id) DESC) AS Numero,
    f.nome AS Nome_Fornecedor, 
    COUNT(iv.produto_id) AS QTD_Vendas
FROM itens_venda iv
JOIN produtos p ON p.id_produto = iv.produto_id
JOIN fornecedores f ON f.id_fornecedor = p.fornecedor_id
GROUP BY Nome_Fornecedor
ORDER BY QTD_Vendas DESC;
  • ROW_NUMBER(): É a função que gera a contagem das linhas.
  • OVER (ORDER BY ...): Esta parte é obrigatória. Ela diz ao banco de dados em qual ordem a numeração deve ser baseada. No exemplo acima, usei a mesma ordem das vendas (COUNT(...) DESC), assim o fornecedor que mais vendeu será o número 1.

Dica: Se você quiser que a numeração siga a ordem alfabética do nome, basta mudar para OVER (ORDER BY f.nome). A numeração da coluna "Numero" será independente da ordenação final do ORDER BY lá de baixo!

Espero ter ajudado.

Qualquer dúvida que surgir, compartilhe no fórum. Abraços e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!