Hallo zusammen,
mir ist heute eine etwas ungewöhnliche Frage eingefallen, die ich gerne mal mit euch diskutieren wollte.
Angenommen, ich habe eine Tabelle mit Werten wie:
select * from bereiche order by name;
name, wert
Bereich1, 100
Bereich2, 200
Bereich3, 20
Bereich4, 150
Bereich5, 300
Der Hintergrund: Wenn man diese in einem Tortendiagramm ausgeben möchte, wäre es besonders übersichtlich, wenn man immer einen größeren Bereich neben einem kleineren Bereich platzieren würde. Zwei kleinere Bereiche nebeneinander sind schlechter lesbar.
Dabei hätte ich überlegt, wie man denn mit Postgres alternierend sortieren kann. Also so:
Bereich5, 300
Bereich3, 20
Bereich2, 200
Bereich4, 150
Bereich1, 100
Ich habe allerdings keine leichte Lösung gefunden. Klar könnte man mit einer Funktion mitzählen oder modulo2-artig eine Zählspalte mit Sortiergrößen befüllen, aber mich hätte interessiert, ob jemand einen einfacheren Weg kennt, der direkt über das order by führt?
select * from bereiche order by XYZ?;
Würde mich freuen, wenn jemand eine intressante oder trickreiche Lösung kennt.
az_hf0