2016-03-22 9 views
0

ich Abfrage folgende bin mitRückkehr Array_accum Nullwerte in Postgres SQL, wenn wir 350 Zeilen in einer Tabelle haben

select distinct throttle_id, array_accum(param) over (partition by throttle_id) as script_exclude from throttle_data where exclude = 't' and valve_type = 513 and throttle_id = 1270571881 

und ich bin in script_exclude Nullwert Feld

Beispielwerte bekomme ich in param haben Spalte,

Flugtickets/Preise/launch_0tc.wql Flugtickets/Preise/launch_0xp.wql Flugtickets/Preise/launch_0xp_down.wql Flugtickets/Preise/launch_0xp_up.wql

Anzahl der Zeilen ist 351.

Bitte Beratung, wie kann ich diese alle Wert erhalten.

Grüße, Sachin Jain

+1

Was macht 'array_accum()'? Es ist keine Standard-Postgres-Funktion. Wenn Sie eine durch Kommas getrennte Liste wünschen, dann verwenden Sie 'string_agg()' nicht. Außerdem: Die Art und Weise, wie Sie 'distinct' zusammen mit einer Fensterfunktion verwenden, scheint darauf hinzudeuten, dass Sie mit einem regulären Aggregat tatsächlich nach" gruppieren "wollen –

Antwort

0

folgend statt Versuchen:

select throttle_id, array_agg(param) as script_exclude 
    from throttle_data where exclude = 't' 
     and valve_type = 513 and throttle_id = 1270571881 
group by throttle_id; 

Wenn das immer noch null kehrt dann versuchen:

select * from throttle_data 
WHERE exclude = 't' 
     and valve_type = 513 and throttle_id = 1270571881; 

Um zu sehen, was tatsächlich aggregiert.

Wenn das keine Zeilen zurückgibt, stimmt etwas mit Ihren Kriterien in Ihrer WHERE-Klausel nicht.