Чтобы были возможности
- Выбор полей
- Выбор фильтров
- Задать какие поля с какими совместимы (например COUNT(*) нельзя выбрать с users.login)
- Возможность использования подзапросов в качестве полей.
Попробовал реализовать такое самостоятельно, не осилил. Не перебирать же кучу вариантов, вот это поле и к нему доступны фильтры и такие таблицы подключать и т. д.