프로 시저에서 select 문을 만들려고합니다. 내가 max(a.time)
과 max(b.time)
사이의 마지막 날짜를 취할 필요가select 문에서 두 날짜의 마지막 날짜를 얻는 방법
SELECT u.id, max(a.time), max(b.time)
FROM buy a, sell b, users u
WHERE a.user_id = u.id AND b.user_id = u.id
GROUP BY u.id;
:
여기 내 코드입니다.
SELECT u.id, case when a_max > b_max then a_max else b_max end
FROM (SELECT u.id, max(a.time) as a_max, max(b.time) as b_max
FROM buy a, sell b, users u
WHERE a.user_id = u.id AND b.user_id = u.id
GROUP BY u.id) x;
내부 쿼리가 인덱스를 사용할 수 그들이 최대를 얻기 위해 존재하는 경우 : 훨씬 더 효율적이 될 것입니다 귀하의 DB는 앨리어스 쿼리를 지원하는 경우
사용 CASE. – Narendra
어떤 DBMS를 사용하고 있습니까? –