Problème avec le nombre limite de fois qu'une valeur peut être insérée

J'ai la requête suivante ci-dessous qui insère correctement la façon dont il est écrit. Cependant, je rencontre des problèmes en essayant de modifier la requête pour n'insert que la valeur de la colonne 'coord' au maximum 5 fois.

Par exemple si la colonne 'coord' = 'Nord'. Je dois limiter le nombre de fois que le 'Nord' peut être inséré. Si 10 loggings avec 'coord' = 'Nord' est déjà dans la database 5 fois, alors la valeur suivante de 'coord' devrait être sélectionnée en fonction des critères de la clause where.

SELECT ID, ROUTE into #TEMP_DISTANCE FROM TRAN_TBL where handle = 21; SELECT coord, travels into #temp_planned FROM converse_TBL WITH TravelPlansInfo AS ( SELECT ID, Route, COUNT(1) AS rowcnt FROM #TRAN_TBL GROUP BY ID, Route ) , rownum_matches AS ( SELECT t.ID, r.coord, t.rowcnt, ROW_NUMBER() OVER (PARTITION BY t.ID ORDER BY newid()) AS rownum FROM TravelPlansInfo t JOIN #temp_planned f ON f.travels != t.Route ) INSERT into #temp_angle SELECT ID, coord FROM rownum_matches rm WHERE rownum <= rowcnt 

J'ai essayé de résoudre ce problème en utilisant un slider, mais c'était un gâchis. Je préférerais utiliser une alternative différente aux sliders si possible. L'input serait appréciée.

Cette approche est beaucoup plus simple.

 insert into table (f1, f2, etc) select value1, value2, etc where (select count(*) from wherever) < 5 

Cela suppose que le server sql ne nécessite pas de clause where dans une requête select.