Come si eliminano solo alcune righe in postgreSQL? Voglio recuperare 10 righe da eliminare in una sottoquery.PostgreSQL DELETE FROM (SELECT * FROM table FETCH FIRST SOLO 10 ROWS)
Il mio tavolo
Come si eliminano solo alcune righe in postgreSQL? Voglio recuperare 10 righe da eliminare in una sottoquery.PostgreSQL DELETE FROM (SELECT * FROM table FETCH FIRST SOLO 10 ROWS)
Il mio tavolo
è necessario utilizzare una condizione in cui secondo il vostro requisito come questo:
delete from mytable where id in(1,2,3,4,5,6,7,8,9,10)
o
delete from mytable where id in(select id from mytable where someconditon)
o si può provare in questo modo se si desidera eliminare la top 10 utilizzando ctid:
DELETE FROM mytable
WHERE ctid IN (
SELECT ctid
FROM mytable
GROUP BY s.serialId, s.valuetimestamp
ORDER BY s.serialId
LIMIT 10
)
Se state cercando di rimuovere i duplicati dal vostro tavolo quindi provare questo:
DELETE FROM mytable
WHERE ctid NOT IN
(SELECT MAX(s.ctid)
FROM table s
GROUP BY s.serialId, s.valuetimestamp);
Se avete qualche identificatore univoco (seriale, chiamiamolo "id") nella tabella, poi solo fare qualcosa di simile:
DELETE FROM table WHERE table.id IN (SELECT table.id FROM table WHERE *whatever*)
Aggiungere o meno qualcosa di simile "limite di 0,10"
Ho solo lo stesso SerialId e valuetimestamp. Per favore, vedi il mio screendump che ho aggiunto – ArthurDatur
ho solo la stessa SerialId un e valuetimestamp's. Se la mia foto che ho aggiunto. – ArthurDatur
@ArthurDatur: - Vuoi rimuovere i duplicati? –
No, voglio rimuovere metà dei messaggi LIMIT 10 (di 20) bu in realtà sono migliaia di righe Non ci sono duplicati – ArthurDatur