... and I wish to retrieve only the lines with the arrows - how could I do this? If I use "group by product", I'll get only one row per product, but I need all records where the product has changed along with the point in time when the change happened.
Good. Use the LAG function to compare the current row's product value with the previous row's product value. If the two are not equal then you want to display the row, otherwise you do not. In order to use this restriction with the LAG function, you will need to use a subquery
SELECT prod, date
FROM (SELECT prod, date, LAG_function to 'see' the previous row
If you need to, you can read up on the LAG function here
Glad to hear that you got it working. Just for completeness, any chance you could post the actual code that you used (obfuscate column names if you need to) just so that anyone else searching can see an example.