Du är efter Ecto.Query.API.ago/2 och Ecto.Query.API.from_now/2 för frågeintervall och Ecto.Query.subquery/2 för inre select .
Även Repo.all/2 förväntar sig en fråga som ett första argument, medan du skickar FriendReferralCode som det första argumentet i anropet till Repo.all/2 , där den förväntar sig en fråga, och query som en andra, där den förväntar sig en sökordslista med alternativ.
Gör bara query |> Repo.all() istället.