Давайте предположим, что у меня есть эта MySQL таблица:SUM столбец, когда другой столбец имеет равные значения
id place_id area_mq n
-- -------- ------- --
1 1 50 1
2 2 90 1
3 2 20 1
4 3 10 1
5 3 10 2
6 3 10 3
7 4 20 1
8 4 20 2
9 5 15 1
10 5 25 1
id
является первичным ключом, place_id
обозначает идентификатор области, area_mq
является площадью поверхности места в квадратных метрах ,
Что я должен сделать, это найти компактный запрос для расчета суммы area_mq
с этими правилами:
- если
n
является равна для одной и той жеplace_id
, то считать каждуюarea_mq
(f.ex дляplace_id
= 2, я считаю 90 и 20 в сумме) - , если это
n
отличается для той жеplace_id
, то рассчитыватьarea_mq
только один раз (возможно, потому что для такого рода «мест» значение будет одинаковым; f.ex.place_id
= 4, есть два 20, я суммирую только 20, а не 40).
В этом примере моя правильная сумма будет равна: 50 + (90 + 20) + 10 + 20 + (15 + 25).
Могу ли я выполнить это с помощью запроса (без кода или процедур)? Если требования для n были отменены, это было бы просто с GROUP BY и подзапросом ... но с этими условиями я застрял.
п = 1 всегда п значение, которое вы хотите использовать? – Manuel
Нет @ dragon112, это может быть произвольно – Cranio