Jeśli potrzebujesz wartość (a+b+c)/3
w więcej niż tylko jednym zapytaniu SQL i twój dialekt obsługuje widoki, warto rozważyć użycie View.
Poniższy kod może być użyty w MySQL
do utworzenia widoku, który zawiera wszystkie kolumny tabeli MY_TABLE_NAME
+ dodatkową kolumnę zawierającą wartość (a+b+c)/3
.
CREATE ALGORITHM = UNDEFINED
SQL SECURITY DEFINER VIEW `MY_TABLE_NAME_FULL_VIEW` AS
SELECT MY_TABLE_NAME.*, (a+b+c)/3 AS Average
FROM `MY_TABLE_NAME`;
Następujący kod może być użyty w celu utworzenia MySQL
widok zawierający tylko kolumn A, B i C + dodatkowa kolumna zawierająca wartości (a+b+c)/3
.
CREATE ALGORITHM = UNDEFINED
SQL SECURITY DEFINER VIEW `MY_TABLE_NAME_LIMITED_VIEW` AS
SELECT a, b, c, (a+b+c)/3 AS Average
FROM `MY_TABLE_NAME`;
Poniższy kod może być użyty w MySQL
utworzyć widok w MySQL, który zawiera jedynie wartość (a+b+c)/3
.
CREATE ALGORITHM = UNDEFINED
SQL SECURITY DEFINER VIEW `MY_TABLE_NAME_AVERAGE_VIEW` AS
SELECT (a+b+c)/3 AS Average
FROM `MY_TABLE_NAME`;
Po utworzeniu widoku użyj widoku zamiast tabeli w zapytaniach wybranych.
Zakładając utworzony widok MY_TABLE_NAME_AVERAGE_VIEW
, można zastąpić oświadczenie SELECT
z tym:
SELECT Average AS V, MIN(Average) AS Min, MAX(Average) AS Max
FROM MY_TABLE_NAME_AVERAGE_VIEW;
Zakładając utworzony widok MY_TABLE_NAME_LIMITED_VIEW
, a także muszą zawierać wartości A, B i C, można Zamień swój numer SELECT
na następujący:
SELECT a, b, c, Average AS V, MIN(Average) AS Min, MAX(Average) AS Max
FROM MY_TABLE_NAME_LIMITED_VIEW;
Należy pamiętać, że pierwsze wybrane wyrażenie będzie losowe (np. ng mysql i bez grupy przez) – Unreason