Как удалить дочерние записи, число которых для родителя превышает десять, и я должен сохранить родительскую запись phoenix sql - PullRequest
0 голосов
/ 26 ноября 2018

У меня есть информация о родителях и дочерних элементах в одной и той же таблице. Теперь я должен удалить дочерние записи, число которых для одного родителя превышает десять.

Мне удалось получить количество дочерних элементов для каждого родителя.но я не смог удалить только дочерние записи, насчитывающие более десяти для родителя, и я должен сохранить родительскую запись и удалить только дочерние записи

select parent,count(child) from table group by parent having count(child >10);

Это дает результаты:

Parent. |  Count(child)

1053.   |    15
3052.   |    30
3467.   |    45

Теперь мне нужно удалить только количество дочерних записей более 10, и я пробовал разные способы, но не помог мне. Любая помощь приветствуется.

1 Ответ

0 голосов
/ 26 ноября 2018
   UPDATE TABLE SET CHILD =NULL WHERE PARENT IN (SELECT 
  PARENT FROM(SELECT 
  PARENT,COUNT(CHILD) FROM TABLE GROUP BY 
  PARENT HAVING COUNT(CHILD)>10));

Сначала будет получен родитель с количеством больше 10, а затем удалены родительские дочерние записи из таблицы

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...