2

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

-- 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
4

2 回答 2

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 函数在性能方面的用途有限(阅读:它对性能非常不利)。小心使用。

于 2013-04-11T08:00:49.057 回答
3

它没有回答您的直接问题,但为什么不按国家/地区分组?

select avg(monthly_sales), country
from world_sales
where product name like '%juice%' group by country;
于 2013-04-11T08:01:02.537 回答