我对每个国家都使用下面的查询。我如何制作一个函数来生成传递给它的每个国家/地区的平均值?
-- 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
我对每个国家都使用下面的查询。我如何制作一个函数来生成传递给它的每个国家/地区的平均值?
-- 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
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 函数在性能方面的用途有限(阅读:它对性能非常不利)。小心使用。
它没有回答您的直接问题,但为什么不按国家/地区分组?
select avg(monthly_sales), country
from world_sales
where product name like '%juice%' group by country;