-- create
CREATE TABLE TRANSACTION (
  id INTEGER NOT NULL,
  TRANS VARCHAR(3) NOT NULL,
  CODE INTEGER NOT NULL
);

-- insert
INSERT INTO TRANSACTION VALUES (1001, 'TE', 9000);
INSERT INTO TRANSACTION VALUES (1002, 'TE', 9000);
INSERT INTO TRANSACTION VALUES (1002, 'CC', 8999);
INSERT INTO TRANSACTION VALUES (1003, 'TE', 9000);
INSERT INTO TRANSACTION VALUES (1003, 'CC', 8999);
INSERT INTO TRANSACTION VALUES (1003, 'CAN', 8998);
INSERT INTO TRANSACTION VALUES (1004, 'TE', 9000);
INSERT INTO TRANSACTION VALUES (1004, 'CAN', 8999);
INSERT INTO TRANSACTION VALUES (1004, 'CC', 8998);
INSERT INTO TRANSACTION VALUES (1004, 'CAN', 8997);

select * from transaction;
-- fetch 
-- select * from transaction where code = (SELECT min(code) FROM TRANSACTION group by id order by id) and trans = 'CAN' order by id;
-- select * from transaction where 
-- SELECT id, min(code) FROM TRANSACTION group by id order by id;
Select a.* from (SELECT id, min(code) as code FROM TRANSACTION group by id) as a left join transaction as b on a.id=b.id and a.code=b.code where b.trans='CAN'