Для подведения итога по группе данных используется комбинация ключевого слова GROUP BY и агрегирующих функций. Причем в списке полей для выборки обычно присутствуют только поля группировки и агрегирующие функции. При необходимости можно добавить дополнительные поля, которые функционально зависят от «ключа группировки».
Получить список договоров и общую сумму счетов по каждому договору:
SELECT k_contract_contract_num, SUM(bill_sum) AS contract_sum
FROM k_bill
GROUP BY k_contract_contract_num

В том случае, когда нужно выбрать не все группы, а только некоторые из них, используется ключевое слово HAVING:
Получить список договоров, имеющих 2 или более счетов, и общую сумму счетов по каждому договору:
SELECT k_contract_contract_num, SUM(bill_sum) AS contract_sum
FROM k_bill
GROUP BY k_contract_contract_num
HAVING COUNT(bill_num)>=2;
