Gjorde om vyn till en temporär tabell istället och det löste hastighetsproblemet.
Försöker ta värdet på diff minus värdet på samma attribut fast på nästa rad. Jag kom fram till den här queryn efter lite sökningar här i forumet, men den tar väldigt lång tid att utföra, runt en minut på en liten testdatabas med 2100 rader.
Finns det något effektivare sätt att utföra samma sak? jag använder PostgreSQL 8.1.3.
SELECT t.id, t.diff - (SELECT diff FROM tmpview t2 WHERE t2.id > t.id ORDER BY t2.id ASC LIMIT 1) AS nytt FROM tmpview t ORDER BY t.id ASC;
Hmm kom precis på att det kanske tar extra lång tid eftersom frågan ställs mot en vy.
Såhär skapas vyn:
CREATE VIEW tmpview AS SELECT t1.id AS id, (t4.ts-t1.ts-(t3.ts-t2.ts)) AS diff,
FROM projectname_t1 t1, projectname_t2 t2, projectname_t3 t3, projectname_t4 t4
WHERE t1.id = t2.id AND t1.id = t3.id AND t1.id = t4.id;