sql >> Database teknologi >  >> RDS >> Sqlserver

udregn gennemsnitlig rating i sql server

Prøv dette her:

EKSEMPELDATA

create table UserDetails(
    Id int,
    ServiceDescription varchar(20),
    Skills varchar(20)
)
create table Review(
    Id int,
    CustomerId int,
    VendorId int,
    Rating int
)

insert into UserDetails values(1, 'Plaster', 'plaster'),(2, 'construction', 'construction'),(3, 'plaster', 'plaster');
insert into Review values(1, 4, 1, 3),(2, 5, 1, 3);

LØSNING

select
    u.Id as VendorId,
    u.ServiceDescription,
    u.Skills,
    isnull(sum(r.rating)/count(r.rating), 0) as AverageRating
from UserDetails u
left join Review r
    on r.VendorId = u.id
where
    u.ServiceDescription like '%plaster%'
    or u.Skills like '%plaster%'
group by 
    u.Id,
    u.ServiceDescription,
    u.Skills
order by AverageRating desc


  1. GRUPPER EFTER lnavn BESTIL EFTER at vise forkerte resultater

  2. SUBSTRING() og hex-værdi

  3. Hvordan CONCAT_WS() virker i MariaDB

  4. Hvordan genererer man automatisk identitet til en Oracle-database gennem Entity framework?