Предполагается, что вы уже создали запись для дня / имени_ озера / станции до ввода температуры в этот день. Конечно, вы можете добавить еще один триггер для этого.
create trigger Temperature_count_insert_trigger_hi after insert on Temperature
when new.temperature_f >= 75
begin
update Temperature_summary set count_readings_over_75f = count_readings_over_75f + 1
where new.day = day and new.lake_name = lake_name and new.station = station;
end;
create trigger Temperature_count_insert_trigger_lo after insert on Temperature
when new.temperature_f < 75
begin
update Temperature_summary set count_readings_below_75f = count_readings_below_75f + 1
where new.day = day and new.lake_name = lake_name and new.station = station;
end;
Вы можете объединить их в один более сложный триггер
create trigger Temperature_count_insert_trigger after insert on Temperature
begin
update Temperature_summary
set count_readings_below_75f = count_readings_below_75f + (new.temperature_f < 75),
count_readings_over_75f = count_readings_over_75f + (new.temperature_f >= 75)
where new.day = day and new.lake_name = lake_name and new.station = station;
end;
Чтобы гарантировать, что в Temperature_summary есть строка для обновления (a) сделать уникальный индекс для Temperature_summary в (day, lake_name, station)
или сделать эти столбцы первичным ключом, и (b) выполнить вставку или игнорирование в триггере следующим образом:
create trigger Temperature_count_insert_trigger after insert on Temperature
begin
insert or ignore into Temperature_summary
values (new.day, new.lake_name, new.station, 0, 0);
update Temperature_summary
set count_readings_below_75f = count_readings_below_75f + (new.temperature_f < 75),
count_readings_over_75f = count_readings_over_75f + (new.temperature_f >= 75)
where new.day = day and new.lake_name = lake_name and new.station = station;
end;