Хм, я думаю, что все ответы НЕ отвечают на вопрос (но, конечно, возможно, я неправильно понял вопрос):
Если вы не группируете, вы можете, например, получить MSFT дважды
поэтому мы начнем с чего-то вроде этого
select name, symbol, x(date)
from sometable
group by name, symbol
Вопрос, который я получил, касается функции x (), которая должна возвращать первый элемент столбца даты в соответствующей группе. Проблема в том, что в реляционной базе данных нет естественного порядка строк. Поэтому такая функция не может существовать, поскольку она не определена.
Вам нужен еще один столбец, определяющий порядок, например, метка времени столбца:
select
a.name,
a.symbol,
(
select b.date
from sometable
where b.timestamp = min(a.timestamp)
and a.name = b.name
and a.symbol = b.symbol
) as first_date
from sometable as a
group by name, symbol
Это по крайней мере работает в оракуле. Если sqlserver не нравится это, можно переписать его как объединение.
Альтернативой могут быть аналитические функции, которые, как мне сказали, поддерживаются sqlserver