Pular para o conteúdo
Visualizando 15 posts - 1 até 15 (de 23 do total)
  • Autor
    Posts
  • #91999
    facc
    Participante

      Boa tarde,

      Quero trazer em um SELECT uma certa quantidade de registros de um determinado campo.
      Ex. na tabela possui 387120 registros, dentre esses registros vários se repetem (é normal, por se tratar de arquivo para Associação). Me solicitaram para trazer 50000 CPFs diferentes, pensei comigo é só fazer assim:

      Select * from tabela
      where rownum <= :qtdd;

      Realmente me traz a quantidade exigida, porem ele está contando as linhas e não a quantidade de CPFs diferentes que me foi solicitado.

      Explicando melhor: Preciso de um SELECT que me retorne 50000 CPFs diferentes, porém não posso colocar o distinct pela necessidade de também me retornar os CPFs repetidos, ou seja, preciso dos 50000 diferentes mais os repetidos.

      #92000
      Peterson
      Participante

        Não entendi.

        #92001
        facc
        Participante

          Assim, tenho uma tabela com um total de 387.120 registros (dentres eles 180.311 se repetem), preciso trazer 50000 CPFs diferentes

          sei que poderia fazer dessa forma

          Select distinct(CPF), from tabela
          where rownum <= 50000;

          Mas não é isso que eles querem, eles querem que eu traga esses 50000 diferentes mais os que se repetem nesse intervalo, ou seja, no final irei trazer mais de 50000 linhas.

          #92002
          burga
          Participante

            Assim não vai?
            Select * from tabela
            where rownum <= :qtdd
            and cpf is not null;

            Edit:
            desconsidere esse post… postei junto com vc, agora entendi o que vc quer… 😀

            #92003
            facc
            Participante

              [quote=”burga”:340rm66v]Assim não vai?
              Select * from tabela
              where rownum <= :qtdd
              and cpf is not null;
              [/quote]

              Todos os CPF possuem valor.

              #92004
              burga
              Participante

                Agora sim… rs!! 8)
                select *
                from tabela
                where cpf in
                (select distinct(CPF) from tabela
                where rownum <= 50000);

                #92005
                sancler
                Participante

                  Isso resolve.


                  select *
                  from tabela
                  where cpf in
                  (select distinct(CPF) from tabela
                  where rownum <= :qtdd;

                  #92007
                  sancler
                  Participante

                    Ops!

                    Burga foi Crtl+C, Crtl+V não viu!

                    huahuahuahuahu

                    #92008
                    facc
                    Participante

                      Vou testar.

                      Volto com o resultado

                      #92009
                      burga
                      Participante

                        O louco… rs!!! 😆

                        Pelo menos reforçou a idéia… kkkkkkk

                        #92012
                        facc
                        Participante

                          [quote=”burga”:307hf5qz]Agora sim… rs!! 8)
                          select *
                          from tabela
                          where cpf in
                          (select distinct(CPF) from tabela
                          where rownum <= 50000);
                          [/quote]

                          Quase isso, ele me retornou cerca de 25000 registros não repetidos… preciso que me retorne exatamente os 50000 não repetidos…

                          #92013
                          sancler
                          Participante

                            Facc, você tem certeza que tem 50.000 registros não repetidos nessa tavela?

                            Pq esse select é pra retornar justamente o que você tá querendo.

                            att,

                            #92016
                            facc
                            Participante

                              [quote=”sancler”:20n20sg6]Facc, você tem certeza que tem 50.000 registros não repetidos nessa tavela?

                              Pq esse select é pra retornar justamente o que você tá querendo.

                              att,[/quote]
                              Segue os totais da tabela

                              Total tabela: 387.120
                              Total não Repetidos: 206.809
                              Total repetidos: 180.311

                              #92017
                              sancler
                              Participante

                                Facc tenta assim.

                                select *
                                from tabela
                                where cpf in
                                (select distinct(CPF) from tabela)
                                and rownum <= 50000

                                posta ai se deu certo.

                                #92018
                                lobomaudiego
                                Participante

                                  Facc,

                                  Como você fez para ver registros repetidos?

                                  Pois o select que o “burga” fez está correto.

                                  Att,

                                  Diego Monteiro

                                Visualizando 15 posts - 1 até 15 (de 23 do total)
                                • Você deve fazer login para responder a este tópico.