none
Aleatoriedade por registro RRS feed

  • Pergunta

  • Proprietario                   Veiculo
    Vinicius                            uno
    Vinicius                            palio
    Vinicius                            gol
    Thiago                             celta
    Thiago                             fox
    Rodrigo                           i30
     
    Boa tarde, gostaria de saber como randomizar 1 registro por Proprietario.
    Exemplo de resultado: 
    Proprietario                   Veiculo
    Vinicius                            uno
    Thiago                             celta
    Rodrigo                           i30
     
    Como faço isso no SQL Server?

    Vinicius Silva vinycius01@gmail.com

    quarta-feira, 13 de novembro de 2013 13:06

Respostas

  • Aproveitando o exemplo do Gapimex, você pode adaptar da seguinte forma:

    with CTE_RN as
    (
        select
            Proprietario,
            Veiculo,
            ROW_NUMBER() OVER(PARTITION BY Proprietario ORDER BY Proprietario, NewId()) as RN
        from Tabela
    )
    
    select * from CTE_RN
    where RN = 1

    Não testei, mas acho que dá certo.

    Abraço!


    "A vida é um paraíso, mas os homens não o sabem e não se preocupam em sabê-lo." Fiodor Dostoievski

    • Marcado como Resposta vinycius01 segunda-feira, 18 de novembro de 2013 18:34
    segunda-feira, 18 de novembro de 2013 17:28

Todas as Respostas

  • Bom dia,

    Vinicius, experimente dessa forma para ver se é obtido o resultado desejado:

    with CTE_RN as
    (
        select
            Proprietario,
            Veiculo,
            ROW_NUMBER() OVER(PARTITION BY Proprietario ORDER BY Proprietario) as RN
        from Tabela
    )
    
    select * from CTE_RN
    where RN = 1

    Espero que ajude.


    Assinatura: http://www.imoveisemexposicao.com.br

    • Sugerido como Resposta Roberson Naves quinta-feira, 14 de novembro de 2013 14:18
    quarta-feira, 13 de novembro de 2013 13:20
  • testei e entendi o que ele faz...

    vc gera uma tabela temporária, inserindo os números de linhas das tuplas. Depois vc seleciona somente os registros que possuem 1 no numero da linha.

    Na verdade o que quero fazer é selecionar de forma aleatória (como fazemos com newid()).



    Vinicius Silva vinycius01@gmail.com

    segunda-feira, 18 de novembro de 2013 17:20
  • Aproveitando o exemplo do Gapimex, você pode adaptar da seguinte forma:

    with CTE_RN as
    (
        select
            Proprietario,
            Veiculo,
            ROW_NUMBER() OVER(PARTITION BY Proprietario ORDER BY Proprietario, NewId()) as RN
        from Tabela
    )
    
    select * from CTE_RN
    where RN = 1

    Não testei, mas acho que dá certo.

    Abraço!


    "A vida é um paraíso, mas os homens não o sabem e não se preocupam em sabê-lo." Fiodor Dostoievski

    • Marcado como Resposta vinycius01 segunda-feira, 18 de novembro de 2013 18:34
    segunda-feira, 18 de novembro de 2013 17:28
  • BOAAA!!!!

    AGORA SIMMMMM...

    OBRIGADO!


    Vinicius Silva vinycius01@gmail.com

    segunda-feira, 18 de novembro de 2013 17:39
  • Por nada!

    Se puder, marque como resposta.
    Obrigado!


    "A vida é um paraíso, mas os homens não o sabem e não se preocupam em sabê-lo." Fiodor Dostoievski

    segunda-feira, 18 de novembro de 2013 17:43