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

КОМЕНТАРІ • 57

  • @vlademiro
    @vlademiro 3 роки тому +2

    Ó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.

    • @mqfs
      @mqfs  3 роки тому

      Shoooow!!

  • @EvertonWeyand
    @EvertonWeyand 9 місяців тому

    TOP, TOP, TOP Edson, você é fera !!!

    • @mqfs
      @mqfs  19 днів тому

      Valeeeu!! 💪🏻💪🏻💪🏻

  • @dedeoliveira82
    @dedeoliveira82 5 місяців тому

    muito bom cara. Isso é utilidade pública!

    • @mqfs
      @mqfs  Місяць тому

      Opa, valeeeu!! 💪🏻💪🏻💪🏻
      Fico feliz que tenha gostado!

  • @alexandreamaral665
    @alexandreamaral665 3 роки тому +1

    Fantástico!!!

    • @mqfs
      @mqfs  3 роки тому

      Valeeeu!! 💪🏻💪🏻💪🏻

  • @aurelioleonel
    @aurelioleonel 4 роки тому +1

    Meu amigo, simplesmente vc é de outro planeta!!!!!!

    • @mqfs
      @mqfs  4 роки тому

      Kkkkkk, valeeeeu!!

  • @OrneiPSilva
    @OrneiPSilva 4 роки тому +2

    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

    • @mqfs
      @mqfs  4 роки тому

      Shoooow 💪🏻💪🏻💪🏻💪🏻

  • @brunoborges776
    @brunoborges776 4 роки тому +1

    Excelente video!!!! Me ajudou demais!!

    • @mqfs
      @mqfs  4 роки тому

      Shooooow!!! 💪🏻💪🏻💪🏻💪🏻💪🏻

  • @jeversonleite2954
    @jeversonleite2954 3 роки тому +1

    Show Show

    • @mqfs
      @mqfs  3 роки тому

      Valeeeu 💪🏻💪🏻💪🏻

  • @wandersoncampos4399
    @wandersoncampos4399 4 роки тому +2

    Excelente...!
    Parabéns pela aula, muito útil!

    • @mqfs
      @mqfs  4 роки тому

      Valeeeeu 💪🏻💪🏻💪🏻💪🏻💪🏻

  • @paulohildebrand8996
    @paulohildebrand8996 2 роки тому +1

    show

    • @mqfs
      @mqfs  2 роки тому

      💪🏻💪🏻💪🏻

  • @joaopoliceno8844
    @joaopoliceno8844 4 роки тому +1

    Top.

    • @mqfs
      @mqfs  4 роки тому

      Valeeeeu 💪🏻💪🏻💪🏻💪🏻

  • @faustoalves68
    @faustoalves68 4 роки тому +1

    Muito bom Edson.

    • @mqfs
      @mqfs  4 роки тому

      Valeeeeu 💪🏻💪🏻💪🏻💪🏻

  • @jeffersonquinelatto5054
    @jeffersonquinelatto5054 4 роки тому +1

    cara, sensacional, já vou implementar aqui rsrs. Valeu abraços!!

    • @mqfs
      @mqfs  4 роки тому

      Shooow!! 💪🏻💪🏻💪🏻💪🏻

  • @adysouza1323
    @adysouza1323 4 роки тому +1

    kkk explodiu a mente..... é a primeira vez que vejo subselect no join, kkkk da horaaaaaa!!!!! muito bom

    • @mqfs
      @mqfs  4 роки тому

      Kkkkkkk, show de bola!!!! Valeeeeu 💪🏻💪🏻💪🏻💪🏻

  • @adrianoquintino6193
    @adrianoquintino6193 4 роки тому +1

    Esse vídeo é Show!

    • @mqfs
      @mqfs  4 роки тому

      Valeeeeu 💪🏻💪🏻💪🏻💪🏻

  • @urmenyi
    @urmenyi 4 роки тому +3

    Um vídeo melhor do que o outro. Aprendizado dessa qualidade, só aqui mesmo.

    • @mqfs
      @mqfs  4 роки тому

      Valeeeeu 💪🏻💪🏻💪🏻💪🏻

  • @josefranciscosilva7151
    @josefranciscosilva7151 4 роки тому +2

    Sempre uma aula de excelente qualidade, parabéns!!

    • @mqfs
      @mqfs  4 роки тому

      Valeeeeu 💪🏻💪🏻💪🏻💪🏻

  • @joelcosta1631
    @joelcosta1631 4 роки тому +1

    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.

    • @urmenyi
      @urmenyi 4 роки тому +1

      Joel Costa Claro que vai dar certo. O Edson é um caboclo classe A.

    • @mqfs
      @mqfs  4 роки тому +1

      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!!

    • @joelcosta1631
      @joelcosta1631 4 роки тому +1

      @@mqfs Obrigado pelo incentivo. Vou começar a fazer isso. Vou te manter informado. Grande abraço.

    • @joelcosta1631
      @joelcosta1631 4 роки тому +1

      @@urmenyi obrigado meu nobre. Vou começar a fazer.

  • @NoniLevinson
    @NoniLevinson 4 роки тому +1

    Tô pasmo aqui! Ainda estou no 2.5 e sempre tenho vontade de matar o "Group by"

    • @mqfs
      @mqfs  4 роки тому +1

      Kkkkkk, tem horas que o group by enche o saco mesmo!

  • @elaineribeirourgal4680
    @elaineribeirourgal4680 3 роки тому +1

    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 ?

    • @mqfs
      @mqfs  3 роки тому +1

      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,

  • @dreamsoftware3298
    @dreamsoftware3298 3 роки тому +1

    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?

    • @mqfs
      @mqfs  3 роки тому

      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.

    • @dreamsoftware3298
      @dreamsoftware3298 3 роки тому +1

      @@mqfs desculpe mas nao entendi o que seria psql,

    • @mqfs
      @mqfs  3 роки тому

      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

  • @dreamsoftware3298
    @dreamsoftware3298 3 роки тому +1

    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

    • @mqfs
      @mqfs  3 роки тому

      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

  • @vlademiro
    @vlademiro 3 роки тому +1

    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.

    • @mqfs
      @mqfs  3 роки тому

      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.

  • @dreamsoftware3298
    @dreamsoftware3298 3 роки тому +1

    uma duvida no seu curso tem lugar para o aluno mandar duvidas sobre situacoes que esta precisando montar um sql

    • @mqfs
      @mqfs  3 роки тому

      Opa, abaixo de cada aula tem uma área de comentários, que pode ser usada pra tirar dúvidas.

  • @servoleonardo
    @servoleonardo 4 роки тому +1

    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"?

    • @mqfs
      @mqfs  4 роки тому +1

      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!

  • @tagbi2
    @tagbi2 Рік тому

    ME SALVOU EM PLENO 2024

    • @mqfs
      @mqfs  5 днів тому

      Shooow!! 👏🏻👏🏻👏🏻