FUNÇÕES DE AGREGAÇÃO SEM USAR GROUP BY
Вставка
- Опубліковано 10 лют 2025
- Fala pessoal!! Imagine que você tem duas tabelas, uma mestre e outra detalhe, e no seu select você precisa listar todos os campos da mestre, a contagem e somatório da detalhe... Hoje vamos ver uma técnica de "Boas Práticas" para não precisar usar group by em todos os campos da mestre, facilitando e MUITO as manutenções futuras!!
Tenham um ótimo vídeo! Forte abraço!!
/************************************************************
Acesso ao BD do MQFS e Scripts: mqfs.com.br/#a...
************************************************************/
Canal no Telegram: t.me/mqFirebir...
Grupo privado de estudos no face: / mqfirebirdsql
#mqfs #firebirdsql #firebird #database #sql
00:02:05 Início da prática. Montando o select comum a todas as soluções
00:04:00 O método convencional e os seus inconvenientes
00:08:30 Método 2 compatível com FB 3.0 e superior
00:12:49 Método 3 compatível com FB 2.5
Ótimas dicas
Inicio - Explicando o problema a ser resolvido
00:02:05 - Início da prática. Montando o select comum a todas as soluções
00:04:00 - O método convencional e os seus inconvenientes
00:08:30 - Método 2 compatível com FB 3.0 e superior
00:12:49 - Método 3 compatível com FB 2.5
Gostei mais da terceira solução. A primeira tem a vantagem de funcionar em múltiplos bancos, mas a última, na minha opinião, deixa o código mais claro.
Shoooow!!
TOP, TOP, TOP Edson, você é fera !!!
Valeeeu!! 💪🏻💪🏻💪🏻
muito bom cara. Isso é utilidade pública!
Opa, valeeeu!! 💪🏻💪🏻💪🏻
Fico feliz que tenha gostado!
Fantástico!!!
Valeeeu!! 💪🏻💪🏻💪🏻
Meu amigo, simplesmente vc é de outro planeta!!!!!!
Kkkkkk, valeeeeu!!
Edson muito top, o select no join e novidade pra min, o modo feito para o fb 2.5 funciona tambem no fb 2.1
Shoooow 💪🏻💪🏻💪🏻💪🏻
Excelente video!!!! Me ajudou demais!!
Shooooow!!! 💪🏻💪🏻💪🏻💪🏻💪🏻
Show Show
Valeeeu 💪🏻💪🏻💪🏻
Excelente...!
Parabéns pela aula, muito útil!
Valeeeeu 💪🏻💪🏻💪🏻💪🏻💪🏻
show
💪🏻💪🏻💪🏻
Top.
Valeeeeu 💪🏻💪🏻💪🏻💪🏻
Muito bom Edson.
Valeeeeu 💪🏻💪🏻💪🏻💪🏻
cara, sensacional, já vou implementar aqui rsrs. Valeu abraços!!
Shooow!! 💪🏻💪🏻💪🏻💪🏻
kkk explodiu a mente..... é a primeira vez que vejo subselect no join, kkkk da horaaaaaa!!!!! muito bom
Kkkkkkk, show de bola!!!! Valeeeeu 💪🏻💪🏻💪🏻💪🏻
Esse vídeo é Show!
Valeeeeu 💪🏻💪🏻💪🏻💪🏻
Um vídeo melhor do que o outro. Aprendizado dessa qualidade, só aqui mesmo.
Valeeeeu 💪🏻💪🏻💪🏻💪🏻
Sempre uma aula de excelente qualidade, parabéns!!
Valeeeeu 💪🏻💪🏻💪🏻💪🏻
Boa noite, Edson. Tudo beleza? Excelente vídeo. Parabéns. Cara, depois que eu conheci seu canal, eu preciso urgentemente migrar para o Firebird 3.0. Creio que o 2.0 que estou usando já ficou muito para trás. Meu receio é não conseguir exportar meus dados. Por gentileza, diga-me algo animador para eu criar coragem.
Obrigado.
Joel Costa Claro que vai dar certo. O Edson é um caboclo classe A.
Opa, e aí Joel!! Blz?? Obrigado pelo elogio!!
Sobre a migração, não tem o que temer!! O segredo é não querer dar um passo maior que a perna. Atualize um banco de testes, verifique se os dados foram corretamente, atualize um cliente, monitore, ajuste o que precisar ajustar, e quanto estiver tudo certo atualize mais um, e mais outro.. vai ter sucesso com certeza!!
@@mqfs Obrigado pelo incentivo. Vou começar a fazer isso. Vou te manter informado. Grande abraço.
@@urmenyi obrigado meu nobre. Vou começar a fazer.
Tô pasmo aqui! Ainda estou no 2.5 e sempre tenho vontade de matar o "Group by"
Kkkkkk, tem horas que o group by enche o saco mesmo!
Parabéns Top d+!!! E se dentro deste cenário precisasse fazer um IIF para acrescentar uma coluna com somatório somente dos registros pagos, no caso de ter uma coluna na tabela CR tipo pago(S/N) ? Seria possível ?
opa, com certeza, e isso é excelente pra melhoria de performance, já que vc pode pegar todos os registros (pagos e não pagos) de uma vez só.
/*Todas as versões:*/
sum(iif(pago='S',valor,0) pagos,
sum(iif(pago='N',valor,0) nao_pagos
/* FB 4.0 em diante */
sum(valor) filter(where pago='S') pagos,
sum(valor) filter(where pago='N') nao_pagos,
outra duvida como faria para fazer um gran total por coluna exemplo
tenho 10 pessoas sexo masculo 10 do femenino do mes 01 e assim em diante
so que no termino de cada mes mostrar o total na mesma linha
seria usar um union all?
Melhor forma de todas seria utilizar PSQL por conta de economia de leituras desnecessárias, ainda mais se vc estiver usando FB 2.5 ou anteriores.
Já no FB 3.0 existe a função over(), que foi demonstrado no vídeo.
Vc pode ter uma coluna com o total geral e outra com o total parcial.
Agora, se precisar de um registro a mais no final, PSQL resolve com facilidade mesmo.
@@mqfs desculpe mas nao entendi o que seria psql,
PSQL é a linguagem procedural SQL interpretada pelo Firebird. É praticamente programação pura, onde vc pode declarar variáveis, fazer estrutura condicional, laços de repetição dentre várias outras coisas.
Pra esse caso, deve usar um execute block ou procedure selecionável, que são locais onde roda PSQL.
De tempos em tempos faço evento mostrando o que dá pra fazer com PSQL, e após o evento sempre abre uma nova turma pro treinamento completo
no caso eu precisando de mais tabelas para agupar era so fazaer outros with?
tentei colocar outro with e nao deixa, como seria se precisar ter mais tabelas de agrupamento
Opa, tem como sim, aconselho dar uma olhada nesse vídeo que peguei o script de um inscrito e fiz a melhoria dele... Nessa abordagem, fiz a criação de dois CTEs, como vc precisa:
- Select com 6 vezes mais performance SEM MEXER EM ÍNDICES: ua-cam.com/video/HY3HBS36ed4/v-deo.html
Professor, não se vc trabalha com Delphi, mas esse terceiro método tem como colocar no SQL do Firedac ? Eu quero dizer duas sentenças separadas. O with primeiro e depois o select principal como foi mostrado.
Opa, é pra ter como sim, desde que dentro do mesmo componente... Isso porque normalmente os componentes pegam o conteúdo do script e enviam inteiro para o BD executar.
uma duvida no seu curso tem lugar para o aluno mandar duvidas sobre situacoes que esta precisando montar um sql
Opa, abaixo de cada aula tem uma área de comentários, que pode ser usada pra tirar dúvidas.
Fala Edson... mais um excelente vídeo... tenho 2 perguntas.
Em relação ao group by tem algum caso que ele realmente vai ser necessário em que o over não atenda?
O group by "vai ser extinto"?
Opa, valeeeeu 💪🏻💪🏻💪🏻
Então, de cabeça eu não consigo imaginar uma situação em que só o group by vá resolver e o over não, mas com certeza existe essa situação... Não acho que ele será extinto, mas ter duas opções que são performáticas é bom demais!
ME SALVOU EM PLENO 2024
Shooow!! 👏🏻👏🏻👏🏻