Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

271
Visualizações
¿Cómo traducir la sintaxis de SQL Server a Postgresql?

Estoy pasando de usar SQL Server a Postgresql y tengo problemas para definir una variable.

En SQL Server escribí algo como esto, que funciona bien:

 --Compute the probabilities for unique users declare @users_total decimal(18,2) select @users_total=count(*) from unique_users_table select column1, uvs, uvs/@users_totalm as puvs into probabilities_table from column_uniquevisits_table

Intenté traducirlo a Postgresql así pero obtuve errores:

 --Compute the probabilities for unique users declare users_total numeric(18,2); select users_total=count(*) from unique_users_table select coumn1, uvs, uvs/users_total as puvs insert into probabilitiestable from column_uniquevisits_table

¿Cuál es la forma correcta de escribir lo que originalmente tenía en SQL Server en Postgresql?

over 4 years ago · Santiago Trujillo
2 Respostas
Responde à pergunta

0

Si desea crear una tabla basada en una selección, use create table as select .

No hay necesidad de una declaración (que de todos modos no se puede usar fuera de una función PL/pgSQL)

 create table probabilitiestable as select column1, uvs, uvs::numeric/(select count(*) from count(*) from unique_users_table) as puvs from column_uniquevisits_table;

El cast ::numeric es necesario porque, de lo contrario, la división se haría con aritmética de enteros, lo que significa que no obtendrías ningún valor fraccionario. Si uvs ya está definido como numeric (o decimal o float ), entonces no lo necesita.

over 4 years ago · Santiago Trujillo Relatório

0

Usaría una unión cruzada para crear el conteo para evitar los cambios de contexto y evitar múltiples consultas a la tabla_usuarios_únicos. La razón por la que podemos usar una combinación cruzada es porque sabemos que el resultado de la consulta siempre será 1 registro. Por lo tanto, no tiene un efecto de multiplicación en los resultados.

 CREATE table probabilitiestable as SELECT column1, uvs, uvs/ut.users_total as puvs FROM column_uniquevisits_table CROSS JOIN (SELECT count(*) as users_total FROM unique_users_Table) ut
over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda