Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

oblicz średnią ocenę w serwerze sql

Spróbuj tego:

PRZYKŁADOWE DANE

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

ROZWIĄZANIE

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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak ograniczyć wiersze w zestawie wyników SQL Server

  2. łączenie pojedynczej kolumny w TSQL

  3. SQL - Jak mogę wysłać zapytanie o ponowne przyjęcie w TSQL?

  4. Popraw wydajność zapytań SQL Server na dużych tabelach

  5. T-SQL:Jak używać parametrów w dynamicznym SQL?