Я пытаюсь немного расширить заявление о том, что я получил помощь на прошлой неделе.Как видите, я создаю временную таблицу и вставляю строки данных учеников из недавно проведенного теста для нескольких десятков школ.Когда строки вставляются, они сортируются по счету (totpct_stu, от высокого к низкому), и добавляется row_number, где 1 обозначает наивысший результат и т. Д.школа № 9999 в классе Смита (каждый ученик набрал отличную оценку, и они были единственными учениками в округе).Итак, я не хочу импортировать класс Смита.
Как вы можете видеть, я УДАЛЕН класс Смита, но это испортило нумерацию строк для оставшейся части ученика в школе (например, высокий счет row_number20, а не 1).
Как я могу изменить инструкцию INSERT, чтобы не вставлять этот класс?
DROP TEMPORARY TABLE IF EXISTS avgpct ;
CREATE TEMPORARY TABLE avgpct_1
( sch_code VARCHAR(3),
schabbrev VARCHAR(75),
teachername VARCHAR(75),
totpct_stu DECIMAL(5,1),
row_number SMALLINT,
dummy VARCHAR(75)
);
-- ----------------------------------------
INSERT INTO avgpct
SELECT sch_code
, schabbrev
, teachername
, totpct_stu
, @num := IF( @GROUP = schabbrev, @num + 1, 1 ) AS row_number
, @GROUP := schabbrev AS dummy
FROM sci_rpt
WHERE grade = '05' AND
totpct_stu >= 1 -- has a valid score
ORDER
BY sch_code, totpct_stu DESC ;
-- ---------------------------------------
-- select * from avgpct ;
-- ---------------------------------------
DELETE
FROM avgpct_1
WHERE sch_code = '9999' AND
teachername = 'SMITH' ;