The standard answer is that it can depend on your data, the PI and configuration.
So easiest is to run the different options and check the DBQL.
You also forgot the set option of a temp table. Or the row_number() over...=1 posibility.
In case you have problems to interpret the DBQL numbers share the results.
If you want to find the unique set of <tran_id,cust_id,acct_nbr> then use DISTINCT.
GROUP BY is required if you're aggregating data, but in many cases, DISTINCT is simpler to write and read if you aren't aggregating data.