Hallo Rolf,
SELECT adress_id,
ort, tag, uhr,
ROW_NUMBER() OVER(PARTITION BY adress_id
ORDER BY tag, uhr) as term_row
FROM termine
WHERE term_row = 1
ORDER BY tag, uhr
geht nicht. Man kann term_row nicht im WHERE ansprechen und man kann keine Window-Funktion im WHERE verwenden.
Was geht, ist eine CTE (Common Table Expression) - ab Maria DB 10.2.1:
WITH terminsort AS (
SELECT adress_id, ort, tag, uhr,
ROW_NUMBER() OVER(PARTITION BY adress_id
ORDER BY tag, uhr) as zeile
FROM termine
)
SELECT adress_id, ort, tag, uhr
FROM terminsort
WHERE zeile = 1
oder, wenn man noch eine Alt-Maria, mit einem SELECT als FROM-Angabe. MYSQL 5.x kennt keine Window-Funktionen, da bleibt's beim Selfjoin.
SELECT ts.adress_id, ts.ort, ts.tag, ts.uhr
FROM (SELECT adress_id, ort, tag, uhr,
ROW_NUMBER() OVER(PARTITION BY adress_id
ORDER BY tag, uhr) as zeile
FROM termine) ts
WHERE ts.zeile = 1
Rolf
--
sumpsi - posui - obstruxi
sumpsi - posui - obstruxi