Dotaz níže funguje, ale je lepší zvážit nahrazení stavu sloupce řetězcem status_code
s kódem a mají samostatnou tabulku status(status_code,description)
{denormalizovat}
A indexování (term_id,statUs_code
).
tímto se můžeme sami připojit. Místo toho vytvořte pohled, jako je tento.
SELECT * FROM
(SELECT *,(CASE sample.status
WHEN 'Arrived' THEN 1
WHEN 'Active' THEN 2
WHEN 'Pending Approval' THEN 3
WHEN 'Pending Confirmation' THEN 4
WHEN 'Pending Manual' THEN 5
WHEN 'Denied' THEN 6
WHEN 'Canceled' THEN 7
END) AS status_code FROM SAMPLE
WHERE sample.term_id = 29
) my_view1,
(SELECT BED_ID,MIN(CASE sample.status
WHEN 'Arrived' THEN 1
WHEN 'Active' THEN 2
WHEN 'Pending Approval' THEN 3
WHEN 'Pending Confirmation' THEN 4
WHEN 'Pending Manual' THEN 5
WHEN 'Denied' THEN 6
WHEN 'Canceled' THEN 7
END) AS status_code FROM SAMPLE
WHERE sample.term_id = 29
GROUP BY BED_ID
) my_view2
WHERE my_view1.bed_id = my_view2.bed_id
AND my_view1.status_code = my_view2.status_code