Wählen Sie einen dynamischen Satz von Spalten aus einer Tabelle aus und ermitteln Sie die Summe für jede Spalte

Kann man in Postgres folgendes machen:

SELECT column_name FROM information_schema WHERE table_name = 'somereport' AND data_type = 'integer';

SELECT SUM(coulmn_name[0]),SUM(coulmn_name[1]) ,SUM(coulmn_name[3]) FROM somereport;

Mit anderen Worten, ich muss abhängig von bestimmten Kriterien eine Gruppe von Spalten aus einer Tabelle auswählen und dann jede dieser Spalten in der Tabelle summieren.

Ich weiß, dass ich dies in einer Schleife ausführen kann, sodass ich jede Spalte einzeln zählen kann, aber dies erfordert natürlich eine Abfrage für jede Spalte, die von der Informationsschemaabfrage zurückgegeben wird. Z.B:

FOR r IN select column_name from information_schema where report_view_name = 'somereport' and data_type = 'integer';
LOOP
    SELECT SUM(r.column_name) FROM somereport;
END

Antworten auf die Frage(1)

Ihre Antwort auf die Frage