Here's the SQL query you could use:

```
SELECT UserID
FROM transactions
WHERE TransactionDate >= DATEADD(day, -7, GETDATE()) -- Select transactions from the past week
GROUP BY UserID
HAVING COUNT(DISTINCT ProductID) >= 3 -- Only select users with at least 3 unique products
``` 

This query uses the `DATEADD` function to get transactions within the last week and then groups transactions by user ID. It then only selects user IDs that have made transactions with at least 3 unique products using the `COUNT` and `DISTINCT` functions in the `HAVING` clause.
Data una tabella di transazioni con colonne TransactionID, UserID, ProductID e TransactionDate, scrivere una query SQL per trovare gli utenti che hanno effettuato transazioni con almeno 3 prodotti diversi nell'ultima settimana.