Вместо Parent_ID, почему бы вам не использовать Group_ID:
1, GroupA, 1
2, GroupB, 2
3, GroupC, 3
4, ASubA, 1
5, ASubB, 1
6, BSubA, 2
7, CSubA, 3
8, CSubB, 3
9, CSubC, 3
. Вы можететеперь сортируйте по Group_ID в вашем запросе.
В качестве альтернативы, вы можете использовать два списка, один для групп, а второй для подпрограмм с поисковым столбцом.