service_id、professional_id、およびavg(rating)の3つの列を持つビューを作成しましたが、このビューは正常に動作しています。グループ化機能とグループ化機能はありますか?
CREATE VIEW nota_profissionais
AS
SELECT
service_id, professional_id, avg(nota) AS nota_media
FROM
avaliacao, servico_executado, solicitacao
WHERE
avaliacao.service_id = servico_executado.id
AND servico_executado.id_solicitacao = solicitacao.id
GROUP BY
service_id, professional_id;
は今、各service_id
のためには、(サービスの各タイプ)を返し、私は最高の平均評価を持っているプロを表示する必要があります。私はこれをやってみました:
SELECT
service_id, professional_id, MAX(nota_media) AS nota_media
FROM
nota_profissionais
GROUP BY
service_id, professional_id;
しかし、それはのservice_id毎にすべてのprofessional_idを示す、ビューからまったく同じことを返します。私はそれがなぜ起こっているのか知っていますが、このクエリを正しく行う方法を知らないのです。申し訳ありませんが私は明確でない場合、英語は私の母国語ではありません。
今日のヒント:現代的で明示的な 'JOIN'構文に切り替えましょう! (エラーなし)、読みやすく、外部結合に変換するのが簡単です(必要な場合) – jarlh