sql - Temp table - group by - delete - keep top 10 -


i have temp table 50 000 records. if group by, count, this:

+--------+--------+ |grpbyid | count  | +--------+--------+ | 1      | 10000  | | 2      |  8000  | | 3      | 12000  | | 4      |  9000  | | 5      | 11000  | +--------+--------+ 

i delete records, each id's (1,2,3,4,5) have 10 records left after deletion.

so if make new group by count, have this:

+--------+--------+ |grpbyid | count  | +--------+--------+ | 1      |    10  | | 2      |    10  | | 3      |    10  | | 4      |    10  | | 5      |    10  | +--------+--------+ 

can without fetch next ?

to preserve arbitrary 10 per group can use

with cte ( select *,        row_number() on (partition grpbyid order grpbyid) rn yourtable ) delete  cte rn > 10; 

change order by if need less arbitrary.


Comments

Popular posts from this blog

sequelize.js - Sequelize group by with association includes id -

android - Robolectric "INTERNET permission is required" -

java - Android raising EPERM (Operation not permitted) when attempting to send UDP packet after network connection -