Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

274
Vistas
¿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 Respuestas
Responde la pregunta

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 Denunciar

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 Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda