Я пытался создать новый столбец в SQL, который вычислял значения из других столбцов в одной таблице.Добавление нового столбца в SQL, который вычисляет значение из других столбцов
Пожалуйста, смотрите ниже случай
col1 col2
A 1
A 2
B 1
B 2
B 3
Мне нужно создать новый столбец «COL3», которая находит максимальное из col2 сгруппированных по col1. Таким образом, результат я хочу
col1 col2 col3
A 1 2
A 2 2
B 1 3
B 2 3
B 3 3
Я хотел бы знать, если запрос может быть что-то вдоль линий ниже
ALTER TABLE table1 ADD col3 AS (SELECT max(col2) GROUPBY col1)
Используете ли вы MySQL или MS SQL Server? Ответ зависит от продукта. – jarlh
В целом, это плохая идея, заключающая в базе данных значения. Обычно они ошибаются, потому что некоторая часть кода забывает их поддерживать. Вместо этого вычислите значение в запросе, который получает данные из этой базы данных, когда вы хотите показать его. – RiggsFolly
@RiggsFolly. Если они рассчитаны, они не хранятся внутри базы данных, а вычисляются при запросе, если не используется «PERSISTED». И тогда они должны обычно пересчитывать себя. Тем не менее, я не уверен, как «PERSISTED» будет выполнять в этой ситуации, поскольку я считаю, что столбцы «PERSISTED» пересчитываются только тогда, когда обновляются поля, указанные в их собственной записи. – Jens