How-to: GROUP MAX/MIN/AGGR
Пример 1
Условие
Есть набор книг, для каждой из которых задан уникальный номер.
CLASS Book 'Книга';
id 'Номер' = DATA INTEGER (Book);
Необходимо найти максимальный номер книги.
Решение
maxId 'Максимальный номер' () = GROUP MAX id(Book b);
Пример 2
Условие
Аналогично Примеру 1.
Необходимо по номеру книги найти объект 'Книга'
.
Решение
// Вариант 1
book1 'Книга' (INTEGER i) = GROUP MAX Book b BY id(b);
// Вариант 2
book2 'Книга' (INTEGER i) = GROUP AGGR Book b BY id(b);
Вариант 2 отличается от варианта 1 тем, что объявление этого свойства добавляет ограничение на уникальность номера для книги. При попытке добавить две книги с одинаковыми номерами будет выдано сообщение с ошибкой.