To generalize what jmodic said, realize the question you are asking the database:
For each id_number and description, what is the sum of the price? Thus, you must group by those columns. Whenever you use a group function such as sum, max, min, avg . . . you'll need to group by all other non-group-function columns. How else would Oracle be able to determine the "span" or "window" across which to aggregate those values?