Извините, мое описание отстой, но проблему легко объяснить.У меня есть массивная таблица (более 2 млрд строк) с именем BigTable, которая разбита по дате и выглядит следующим образом:
ID Object Date
--- ------- ----------
1 A 2018-10-01
1 B 2018-10-01
1 C 2018-10-01
1 D 2018-10-01
2 M 2018-10-01
2 N 2018-10-01
2 O 2018-10-01
3 X 2018-10-01
3 B 2018-10-01
Мне нужен SQL, который возвращает ВСЕ строки для идентификатора, где Object = "B" идата = '2018-10-01' Следовательно, результат будет:
ID Object Date
--- ------- ----------
1 A 2018-10-01
<b>1 B 2018-10-01 </b>
1 C 2018-10-01
1 D 2018-10-01
3 X 2018-10-01
<b>3 B 2018-10-01</b>
SQL достаточно прост, просто присоедините таблицу к себе:
SELECT t2.id,t2.object, t2.date
FROM BigTable T1
join BigTable T2 on t2.id = t1.id
AND t2.transaction_date = '01-OCT-2018'
AND t2.object = 'B'
where t1.date = '01-OCT-2018'
Это, однако, выполняетсядля ЧАСОВ .Подзапрос не делает его лучше.Какой самый эффективный эффективный способ вернуть все строки для идентификатора, который содержит объект = 'B'?