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. PostgreSQL-SELECTを実行するときに外部キーが存在することを確認します

    2. 関係に基づいて1つのレコードに対して複数のレコードを取得するにはどうすればよいですか?

    3. 複数の列から最小値を選択するための最良の方法は何ですか?

    4. sequelizeの2つの異なるフィールドとして、同じforeighnキーを2つ1つのモデルに追加する