Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

изчисляване на среден рейтинг в sql сървър

Ето, опитайте това:

ПРИМЕРНИ ДАННИ

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

РЕШЕНИЕ

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. Динамична SQL грешка при преобразуване на nvarchar в int

  2. 3 начина за връщане на всички таблици БЕЗ първичен ключ в SQL Server

  3. ОПИТАЙТЕ CATCH със свързан сървър в SQL Server 2005 не работи

  4. Как SCHEMA_ID() работи в SQL Server

  5. Индексът е извън границите на масива. (Microsoft.SqlServer.smo)