Pod pretpostavkom da imas neki id po kime ih redjas (u koloni a i u sabiranju) npr posle
CREATE TABLE tabela(id INT UNSIGNED AUTO_INCREMENT NOT NULL, broj INT, PRIMARY KEY (id))
da bi dobio sve kolone koje su ti visak upit je
Code:
SELECT p.id, SUM( IF( q.id <= p.id, q.broj , 0 ) ) AS suma
FROM tabela p, tabela q
GROUP BY id
HAVING suma >5000
ako tabela izgleda ovako
CREATE TABLE tabela(broj INT UNSIGNED NOT NULL, PRIMARY KEY (broj))
upit bi mogao biti
Code:
SELECT p.broj, SUM( IF( q.broj <= p.broj, q.broj , 0 ) ) AS suma
FROM tabela p, tabela q
GROUP BY id
HAVING suma >5000
Ovaj drugi ce brisati vrste sa najvecim vrednostima broj-a.
U oba slucaja mora da postoji neki kriterijum na osnovu kog ces da ih redjas moze to da bude bilo koje polje a ne samo id (iiz onoga SUM( IF( q.id <= p.id, q.broj , 0 ) )
na primer i varchar i druga. Bitno je da postoji jedno koje ce da sluzi za uredjenje niza cije parcijalne sume racunas.
Ako imas mysql 5 u prvom slucaju mozes i da ih obrises jednim potezom
Code:
DELETE FROM tabela t WHERE id IN
(SELECT id FROM
(SELECT p.id, SUM( IF( q.id <= p.id, q.broj , 0 ) ) AS suma
FROM tabela p, tabela q
GROUP BY id
HAVING suma >5000
) AS tmp1
) AS tmp0
a u drugom slicno