需要帮助从SQL查询中创建一个函数

时间:2013-04-11 07:59:06

标签: sql sql-server sql-server-2008

我对每个国家/地区使用以下查询。如何创建一个函数来生成传递给它的每个国家/地区的平均值?

-- pepsi drink database
select avg(monthly_sales)
from world_sales
where product name like '%juice%'
and country = 'germany' -- this can be japan, usa, china etc

2 个答案:

答案 0 :(得分:6)

create function dbo.getAverageMonthlySaleForCountry(@country varchar(100))
returns decimal(20,4)
as
begin
  return (
    select avg(monthly_sales)
    from world_sales
    where product name like '%juice%'
    and country = @country
  )
end
GO

但请注意,这样的SCALAR函数在性能方面的用途有限(读取:它的性能非常差)。小心使用。

答案 1 :(得分:3)

它没有回答你的直接问题,但为什么不按国家分组呢?

select avg(monthly_sales), country
from world_sales
where product name like '%juice%' group by country;