У вас есть две опции SELECT DISTINCT или используйте предложение GROUP BY. У вас также есть столбец даты, а в Oracle это также означает, что есть время, поэтому, чтобы быть в безопасности, вы должны урезать столбец даты. Даже если вы знаете, что время не является частью усечения вставки в любом случае. Хорошей практикой является то, что когда вы видите дату, вы считаете, что она имеет время.
Следующая проблема, с которой вы столкнетесь, заключается в том, что вы не можете использовать ORDER BY для столбца, который не является частью команды SELECT.
Моя рекомендация - GROUP BY.
SELECT user1, name, type, TRUNC(date) date
FROM Table1
GROUP BY user1, name, type, TRUNC(date)
ORDER BY user1