아래 표와 데이터를 사용하면 현재 effective_from
값이 고유 한 brand
/model
조합 당 현재 시간 소인보다 작아집니다. 즉, 항목 당 현재 가격입니다.최대 값 (조건 포함)이있는 고유 한 행 선택
CREATE TABLE things
(`id` int, `brand` varchar(1), `model` varchar(5), `effective_from` int, `price` int);
INSERT INTO things
(`id`, `brand`, `model`, `effective_from`, `price`)
VALUES
(1, 'a', 'red', 1402351200, 100),
(2, 'b', 'red', 1402351200, 110),
(3, 'a', 'green', 1402391200, 120),
(4, 'b', 'blue', 1402951200, 115),
(5, 'a', 'red', 1409351200, 150),
(6, 'a', 'blue', 1902351200, 140),
(7, 'b', 'green', 1402358200, 135),
(8, 'b', 'blue', 1902358200, 155),
(9, 'b', 'red', 1902751200, 200),
(10, 'a', 'red', 1908351200, 210),
(11, 'a', 'red', 1402264800, 660);
은 지금까지 나는 내가 특정 brand
/model
조합에 대한 조건을 추가 할 때 찾고 있어요 행을 얻을 수 있었다, 그러나 모든 고유 행 조합의 현재 가격을 인출하는 방법을 모르겠어요.
SELECT *
FROM things
WHERE effective_from<UNIX_TIMESTAMP()
AND brand='a'
AND model='red'
ORDER BY effective_from DESC
LIMIT 1;
현재 타임 스탬프가 있었다면 1402404432
다음과 같은 결과가 있어야한다 :
(1, 'a', 'red', 1402351200, 100),
(3, 'a', 'green', 1402391200, 120),
(2, 'b', 'red', 1402351200, 110),
(7, 'b', 'green', 1402358200, 135),
원하는 결과는 어떻게 생깁니 까? – Strawberry
예상되는 결과를 추가했습니다. – user2959229
나는 당신을 때렸습니다 ;-) – Strawberry