Das ist meine aktuelle Abfrage ist, es funktioniert, aber es ist langsam:Abfrageoptimierung
SELECT row, MIN(flg) ||' to ' ||Max (flg) as xyz , avg(amt_won), count(*)
FROM(
SELECT (ROW_NUMBER() OVER (ORDER BY flg))*100/
(SELECT count(*)+100 as temprow FROM temporary_six_max) as row, flg, amt_won
FROM temporary_six_max
JOIN (
SELECT id_player AS pid, avg(flg_vpip::int) AS flg
FROM temporary_six_max
GROUP BY id_player
) AS auxtable
ON pid = id_player
) as auxtable2
group by 1
order by 1;
Ich Gruppierung in festen (oder fast festen) 100 Bereiche zählen, die von avg (flg_vpip) geordnet nach id_player gruppiert.
Hier habe ich die Ergebnisse für den Fall, klebte es verstehen helfen zu können: https://spreadsheets0.google.com/ccc?key=tFVsxkWVn4fMWYBxxGYokwQ&authkey=CNDvuOcG&authkey=CNDvuOcG#gid=0
Ich frage mich, ob es eine bessere Funktion als ROW_NUMBER() in diesem Fall zu verwenden ist, und ich fühle mich wie ich auch tue, viele Subselects, aber ich weiß nicht, wie man es optimiert.
Ich werde sehr jede Hilfe zu schätzen wissen.
Wenn etwas nicht klar ist, lass es mich wissen.
Vielen Dank.
EDIT:
Der Grund I auxtable 2 erstellt wurde, ist, weil wenn ich (ROW_NUMBER() OVER (ORDER BY FLG) und andere Agregate Befehle verwenden, wie avg (amt_won) und COUNT (*), die wesentlich ist, erhalte ich eine Fehlermeldung, dass flg in der Aggregatfunktion sein sollte, aber ich kann nicht von einer Aggregatfunktion von flg bestellen
Bitte senden Sie auch die Ausgabe von EXPLAIN ANALYSE. Und erklären Sie bitte, was Sie eigentlich mit den geschachtelten Auswahlen erreichen wollen (ich meine * auxtable4 * nicht die abgeleitete Tabelle * autxtable2 * Derzeit verstehe ich das Ziel dieser –
Ich postete die EXPLAIN ANALYSE in den gdocs auf dem obigen Link Die Antwort für die Erstellung von autxtable4 und autxtable 2 sind auf dem editierten Post. Danke. – joaoavf
'max (row_number())' ist im Wesentlichen 'count (*) über (...)'. Aber ich verstehe immer noch nicht die Berechnungen, die du dazu tust (Dividieren und die +100) Aber ich verstehe jetzt die Absicht –