我对每个国家/地区使用以下查询。如何创建一个函数来生成传递给它的每个国家/地区的平均值?
-- 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
答案 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;