Я хочу создать функцию, которая возвращает медиану поля. Я работаю с SQL 2000. я писал:Функция, возвращающая медиану
create function mediana
(@tabla, @campo)
returns int
as
begin
declare @Median integer
return @Median =
(
(SELECT MAX(@campo) FROM
(SELECT TOP 50 PERCENT dia
FROM @tabla
ORDER BY @campo) AS t
)
+ (SELECT MIN(@campo) FROM
(SELECT TOP 50 PERCENT @campo
FROM @tabla ORDER BY @campo DESC) AS b
)
)/2.0 ;
Но я получаю много ошибок. Как я могу это решить, также хотел бы применить эту функцию к данным, сгруппированным по другим типам. Возможно ли это с помощью этого кода?
ps: Я никогда раньше не создавал функцию в sql.
благодаря
Ну где вы нашли синтаксис как 'return @Median ='? Ты это сделал? Я имею в виду, что * есть * [документация для консультаций] (http://technet.microsoft.com/en-us/library/aa258261 (v = sql.80) .aspx). –
Вам нужно использовать динамический SQL, если вы передаете имя таблицы. Я не думаю, что SQL Server 2000 поддерживает параметры, связанные с таблицей, и синтаксис в любом случае не подходит для этого. –
'Я получаю много ошибок' - и эти ошибки ...? – LittleBobbyTables