Да, возможно... но у меня с sql не очень... :(
Кстати, так вопрос. У меня таких запросов 6 штук. Некое разбиение клинетов компании по группам, чтобы их обрабатывать было удобнее, плюс, в зависимости от попадания в ту или иную группу моя система позволяет с ними делать разные оперции. К примеру, компаниям, у которых есть полный набор данных, но которым еще не выслано коммерческое предложение, можно отправить по email коммерческое предложение формируемое в системе и отправляемое средствами системы, с отслеживанием дальнейшей судьбы письма. Так вот, суть вопроса - может просто добавить в модель контрагента несколько флагов (может даже одним обойтись), который позволит разбить компании на категории и в запросе просто проверять состояние этого флага. А вычисление этого флага перенести в те участки кода, где он может поменять свое состояние? Потому что признак попадания в ту или иную категорию у меня зависит от информации в базе о связанных с компанией объектах, таких как сотрудники, контактные данные, наличие писем и статусы этих писем. Можно просто унаследовать методы save() этих объектов и там прописать изменение флага. Как вы считаете, насколько это будет правильно? Я тут вижу только один минус, это то что код, сейчас сосредоточенный в одном месте, где он должен логично располагаться (во вьюхе которая занимается выводом этих групп клиентов), он расползется по models.py по методам save() моделей. Соответственно, будет тяжелее поддерживать проект. Плюс, конечно, так как условий много, то методы save этих объектов станут существенно более тяжелыми.
Да, еще один вопрос в связке с предыдущим - если все же вставлять в модели эту проверку и изменение флагов, то в какой метод лучше это вставить? Я написал про метод save, но может есть более подходящий метод. Например, запихнуть обработку в сигнал post_save.