Как найти запись в таблице, которая содержит максимальное значение?

Я не знаю, что вы хотите, но вы можете попробовать мое решение

variable: {
   info1: 'info1', info2: 'info2', show: false,
   someNameFunction: (anotherArgs) => {
     // do something with anotherArgs
    return functionWhichIWantRun(row);
   }
}
11
задан ekad 8 January 2017 в 02:21
поделиться

4 ответа

Вы могли попробовать подзапросом

select group, id, value, date from A where date in
( select MAX(date) as date
  from A
  group by group )
order by group
8
ответ дан 3 December 2019 в 08:31
поделиться

Если дата уникальна, то у Вас уже есть свой ответ. Если дата не уникальна, то Вам нужен некоторый другой uniqueifier. Отсутствующий естественный ключ, Ваш идентификатор так же хорош как любой. Просто поместите МАКСА (или МИН, какой бы ни Вы предпочитаете) на нем:

SELECT *
FROM A
JOIN (
    --Dedupe any non unqiue dates by getting the max id for each group that has the max date
    SELECT Group, MAX(Id) as Id
    FROM A 
    JOIN (
        --Get max date for each group
        SELECT group, MAX(date) as Date 
        FROM A 
        GROUP BY group
    ) as MaxDate ON
        A.Group = MaxDate.Group
        AND A.Date = MaxDate.Date
    GROUP BY Group
) as MaxId ON
    A.Group = MaxId.Group
    AND A.Id= MaxId.Id
2
ответ дан 3 December 2019 в 08:31
поделиться

Это, для чего были сделаны аналитические функции:

select group,
       id,
       value
from   (
       select group,
              id,
              value,
              date,
              max(date) over (partition by group) max_date_by_group
       from A
       )
where  date = max_date_by_group
4
ответ дан 3 December 2019 в 08:31
поделиться

Пока столбец Date уникален для каждой группы, я думаю, что что-то вроде этого могло бы работать:

SELECT A.ID, A.Value
FROM A
  INNER JOIN (SELECT Group, MAX(Date) As MaxDate FROM A GROUP BY Group) B
    ON A.Group = B.Group AND A.Date = B.MaxDate
0
ответ дан 3 December 2019 в 08:31
поделиться
Другие вопросы по тегам:

Похожие вопросы: