SELECT DISTINCT MOVIES.TITLE, CERTIFICATIONS.ID, PROJECTION.DAY, TIME_SLOTS.SLOT, PROJECTION.REMAINING_SEATS
FROM [...]
Distinct se použije na všechny sloupce ze seznamu SELECT. A ano, nemůžete použít LOB v GROUP BY, UNION, DISTINCT atd., protože Oracle neví, jak porovnávat různé LOBy
Pokud chcete načíst také BLOB, můžete zkusit něco takového:
SELECT MOVIES.TITLE, CERTIFICATIONS.ID,
PROJECTION.DAY, TIME_SLOTS.SLOT, PROJECTION.REMAINING_SEATS, IMAGES.IMAGE
FROM (
SELECT MOVIES.TITLE, CERTIFICATIONS.ID,
PROJECTION.DAY, TIME_SLOTS.SLOT, PROJECTION.REMAINING_SEATS, IMAGES.IMAGE,
row_number() over (partition by MOVIES.TITLE, CERTIFICATIONS.ID, PROJECTION.DAY, TIME_SLOTS.SLOT, PROJECTION.REMAINING_SEATS
order by PROJECTION.DAY, TIME_SLOTS.SLOT) RW
FROM [...]
) WHERE RW = 1;
Ale měli byste pochopit, co hledáte. Například výše uvedený dotaz seskupí všechny sloupce kromě sloupce BLOB, seřadí je podle dvou sloupců a každému řádku ve skupině přiřadí číslo řádku. Výsledný dotaz načte pouze první řádek v každé skupině