1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
* Поиск всех модальных значений для подгрупп наблюдений.

* Вопрос: имеется перечень кодов контрагентов (id) и сумм (amt). Требуется выделить моду (все модальные значения)
  для каждого id.
* Ответ: автор Raynald Levesque, 29.11.2005, www.spsstools.net .

DATA LIST LIST /id amt.
BEGIN DATA
1 10
1 10
1 15
1 15
1 25
2 25
2 30
3 40
4 15
4 25
4 25
4 50
4 50
4 50
4 25
4 75
END DATA.

* Найдём все модальные значения переменной amt для каждого уникального значения идентификатора id.
AGGREGATE OUTFILE=*
	/BREAK=id amt
	/nbOfTimes=N.
EXECUTE.
AGGREGATE 
	/BREAK=id
	/maxNbOfTimes=MAX(nbOfTimes).
SELECT IF maxNbOfTimes = nbOfTimes.
EXECUTE.