sql >> Databasteknik >  >> RDS >> PostgreSQL

Konvertera Oracle SQL Select till PostgreSQL select

Här är din fråga omskriven med ANSI-92 JOIN-syntax:

  SELECT a.abx_apo_number,
         COUNT(ap1.process_mode) AS NUM_PLANNING,
         COUNT(ap2.process_mode) AS NUM_SETUP,
         COUNT(ap3.process_mode) AS NUM_OUTPUT
     FROM ABX a
LEFT JOIN USER_INSTANCE u ON u.abx_apo_number = a.abx_apo_number
LEFT JOIN ACTIVE_PROCESS ap1 ON ap1.process_instance_number = u.instance_number
                            AND ap1.process_mode = 'PLANNING'
LEFT JOIN ACTIVE_PROCESS ap2 ON ap2.process_instance_number = u.instance_number
                            AND ap2.process_mode = 'SETUP'
LEFT JOIN ACTIVE_PROCESS ap3 ON ap3.process_instance_number = u.instance_number
                            AND ap3.process_mode = 'OUTPUT'
 GROUP BY a.abx_apo_number

(+) är Oracle-specifik LEFT OUTER JOIN-syntax. För att ta bort det krävs att varje USER_INSTANCE.instance_number skulle behöva ha värden för att processlägena är alla tre:PLANNING, SETUP och OUTPUT - utelämna ett, och abx_apo_number skulle inte visas i utgången.



  1. Följ extern databas från Heroku

  2. Anonym TABLE- eller VARRAY-typ i Oracle

  3. Om installationen av pg gem misslyckades, kan mkmf.rb inte hitta header-filer för ruby ​​(Mac OSX 10.6.5)

  4. Postgres:konvertera en rad till flera rader (unpivot)