I personally would write a simple plpgsql stored procedure, but I would not trust user input and only allow a defined set of colums from a defined set of tables.Sure, you can limit it to a single table and to a certain set of columns e.g. A B C D E. Can you give me an example of a simple plpgsql stored procedure to do this?
you can have lots of dynamic sql but that might become a rabbithole, just as with an ORM
That's not my experience. In a language with good introspection and/or where most entities are first-class, you can do this rather easily. In Python that would take two or three short lines.
It sounds like a problem you shouldnt have
This is a bit of a cop-out :) allowing the generation of simple reports configured by the user is a typical need for us.