Показать сообщение отдельно
  #3  
Старый 25.10.2016, 20:51
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,015
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

так и хочется ответить:
Код:
SELECT Destination, Count(1) AS Cnt FROM TicketList GROUP BY Destination ORDER BY 2 DESC LIMIT 1
Но LinQ, вроде, в Дельфях нету.

Задачу полностью ставь, давай свой код, в котором реализованно все, кроме проблемного места. Тогда кто-то поможет.

По алгоритму. Идешь по списку/массиву/что-там-у-тебя-где-эти-записи-храняться. Для каждой записи с тем же пунктом назначения к счетчику прибавляешь единичку. При смене пункта назначения сравниваешь с пред. значением, если больше, то запоминаешь новое. Как то так:
Код:
var
  Dest : String;
  DestCnt : Integer;
  CurDest : String;
  CurCnt : Integer;
  I : Integer;
begin
  Dest := '';
  DestCnt := 0;
  CurDest := '';
  CurCnt := 0;
  For I := Low(A) To High(A) Do // массив с записями
    If CurDest = A[i].Dest
      Then Inc(CurCnt) 
      Else
        Begin
          If CurCnt > DestCnt Then
            Begin
               Dest := CurDest;
               DestCnt := CurCnt;
            End;
          Curcnt := 0;
          CurDest := A[i].Dest;
        End;
  If CurCnt > DestCnt Then
    Begin
       Dest := CurDest;
       DestCnt := CurCnt;
    End;
  ShowMessage(Dest);
end;
Ответить с цитированием