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

245
Vistas
¿Cómo puedo traducir un script que escribí en el servidor SQL para calcular las proporciones de probabilidades de Postgresql?

En el servidor SQL, escribí la siguiente secuencia de comandos para calcular las razones de probabilidades en función de las probabilidades de mi grupo de prueba divididas por mi grupo de control. El guión es el siguiente:

 --Compute the odds ratios from the model select a.column1, a.uvs as testuvs. b.uvs as controluvs , [odds]=case when b.uvs>0 then a.puvs/b.puvs else Null end into unique_visitor_odds from control_probabilties b inner join test_probabilities a on a.column1=b.column2 where a.uvs>24 and b.uvs>24 order by [odds] desc

No estoy seguro de cómo escribir esto en Postgresql.

over 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

El código es notablemente similar:

 create table unique_visitor_odds as select tp.column1, tp.uvs as testuvs, cp.uvs as controluvs, tp.puvs / nullif(cp.puvs, 0) as odds from control_probabilties cp inner join test_probabilities tp on tp.column1 = cp.column2 where cp.uvs > 24 and tp.uvs > 24 order by odds desc ;

Eliminé la declaración del case en el select . Eso es manejado por el where . Postgres es lo suficientemente inteligente como para respetar el where al informar errores. Y puede evitar una división por cero usando nullif() .

Excepto para las cláusulas create table as y into , el mismo código funciona en ambas bases de datos.

Además, el order by es sospechoso. De hecho, estoy sorprendido de que SQL Server lo permita.

over 4 years ago · Santiago Trujillo Denunciar

0

Además del tipo potencial entre la segunda y la tercera columna en la cláusula SELECT y la sintaxis del alias extraño, todo debería traducirse a postgres fácilmente:

 SELECT a.column1, a.uvs AS testuvs, b.uvs AS controluvs, CASE WHEN b.uvs > 0 THEN a.puvs / b.puvs ELSE NULL END AS odds INTO unique_visitor_odds FROM control_probabilties b INNER JOIN test_probabilities a ON a.column1 = b.column2 WHERE a.uvs > 24 AND b.uvs > 24 ORDER BY odds DESC
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