Я новичок в запросах sql. Таблица определяется какКак сделать самостоятельное соединение на min/max
( symbol varchar,
high int,
low int,
today date,
Primary key (symbol, today)
)
мне нужно найти для каждого символа в заданном диапазоне дат, и max(high)
min(low)
и соответствующие даты для max(high)
и min(low)
.
- Хорошо, чтобы получить первую максимальную дату и минимальную дату в данной таблице.
- В определенный диапазон дат могут отсутствовать некоторые даты. Если дата начала не указана, то следует использовать следующую дату, и если последняя дата не указана, следует использовать более раннюю доступную дату.
Данные рассчитаны на год и около 5000 символов.
Я пытался что-то вроде этого
SELECT a.symbol,
a.maxValue,
a.maxdate,
b.minValue,
b.mindate
FROM (
SELECT table1.symbol, max_a.maxValue, max_a.maxdate
FROM table1
INNER JOIN (
SELECT table1.symbol,
max(table1.high) AS maxValue,
table1.TODAY AS maxdate
FROM table1
GROUP BY table1.symbol
) AS max_a
ON max_a.symbol = table1.symbol
AND table1.today = max_a.maxdate
) AS a
INNER JOIN (
SELECT symbol,
min_b.minValue,
min_b.mindate
FROM table1
INNER JOIN (
SELECT symbol,
min(low) AS minValue,
table1.TODAY AS mindate
FROM table1
GROUP BY testnsebav.symbol
) AS min_b
ON min_b.symbol = table1.symbol
AND table1.today = min_b.mindate
) AS b
ON a.symbol = b.symbol
который sql-сервер ... SQL-Server, MySQL, ... – DRapp
Что мы 'testnsebav.symbol'? –