Для SQL, для SQL.
SELECT MAX(c1) AS c1, c3 FROM table GROUP BY c3, c1 выдаст тебе твой желаемый результат - ряды 1, 2, 4. это элементарная агрегатная (даже не знаю, как по-русски, по-аглицки aggregate) функция. GROUP BY вступает в силу только тогда, когда в первой части (после SELECT) идёт агрегатная функция (типа SUM, MAX, MIN, AVG и т.д.)
с другой стороны, меняя MAX на MIN, получишь в качестве результата ряды 1, 2, 3
а ещё, в сиквеле есть гораздо более продвинутые вещи: функции, сохраненные процедуры, курсоры, подзапросы, транзакции. Короче говоря, всю бизнес-логику абсолютно реально сделать в самом сиквеле, не прибегая к внешним программным средствам (речь идёт, конечно же, о продуктах бизнес-плана типа oracle, db/2 и ms sql, mysql пока не дотягивает)
|