К вашему сведению, ваш пример использует в основном зарезервированные слова и делает ужасным для нас попытки запрограммировать против.Если у вас есть настоящие столбцы таблицы, дайте их нам.Это postgres:
select name,value, max(date)
from the_table_name_you_neglect_to_give_us
group by 1,2
Это даст вам список имени, значения, максимума (даты) ... хотя я должен спросить, зачем давать нам столбец с именем value, если он не изменяетсяв примере?
Допустим, у вас есть столбец идентификатора ... мы будем согласовываться с вашей схемой и назовем его 'ID' ...
select b.id from
(select name,value, max(date) date
from the_table_name_you_neglect_to_give_us
group by 1,2) a
inner join the_table_name_you_neglect_to_give_us b on a.name=b.name and a.value=b.value and a.date = b.date
Это даетсписок всех идентификаторов, которые являются максимальными ... положить его вместе:
select name,value, max(date)
from the_table_name_you_neglect_to_give_us
group by 1,2
объединение всех
select name,value, max(date)
from the_table_name_you_neglect_to_give_us
where id not in
(select b.id from
(select name,value, max(date) date
from the_table_name_you_neglect_to_give_us
group by 1,2) a
inner join the_table_name_you_neglect_to_give_us b on a.name=b.name and a.value=b.value and a.date = b.date)
Надеюсь, мой синтаксис правильный ... должен быть близок в любом случае.Я бы поставил скобку вокруг всей этой вещи, а затем выбрал * из (над запросом) порядка по имени ... дает вам порядок, который вы хотите.