sql >> Database >  >> RDS >> Sqlserver

gemiddelde beoordeling berekenen in sql-server

Hier, probeer dit:

VOORBEELDGEGEVENS

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);

OPLOSSING

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. Hoe u fouten bij het muteren van tabellen kunt voorkomen

  2. Tabellen uit twee databases samenvoegen met codeigniter

  3. Oracle:snelste manier in PL/SQL om te zien of waarde bestaat:lijst, VARRAY of tijdelijke tabel

  4. MySql-somelementen van een kolom