input: Write a python function to sort a list by the frequency of its elements in descending order.
  assert sort_by_greatest_occurrence([4, 7, 3, 5, 3, 4, 5, 3, 7]) == [3, 3, 3, 4, 4, 5, 5, 7, 7]
  assert sort_by_greatest_occurrence([1, 2, 2, 3, 3, 3]) == [3, 3, 3, 2, 2, 1]
  assert sort_by_greatest_occurrence([10, 20, 20, 10, 30]) == [10, 10, 20, 20, 30]
output: def sort_by_greatest_occurrence(lst):
      from collections import Counter
      count = Counter(lst)
      return sorted(lst, key=lambda x: (-count[x], x))