首页 > 解决方案 > 将不同表中的列与条件和 AVG 组合

问题描述

我正在练习 SQL,我正在尝试实现今天出现在我脑海中的查询。我有三张桌子:

AUTHORS
AU_ID  NAME  LASTNAME  PHONE  ADDRESS  CITY  STATE  ZIP  CONTRACT

TITLES
TIT_ID  TITLE  TYPE  PUB_ID  PRICE  ADVANCE  ROYALTY  ...

TITLEAUTHOR
AU_ID  TIT_ID  AU_ORD  ROYALTYPER

我想要的是提取作者的唯一姓名和姓氏以及他们各自的 AVG(平均)书籍价格。

我尝试了很多东西,但我无法做到这一点。

目前可行的是:

SELECT AVG(titles.price) FROM titles
INNER JOIN titleauthor ON titles.tit_id = titleauthor.tit_id
GROUP BY titleauthor.au_id

它给了我作者书籍的平均价格,但我不知道如何将它与他们的名字结合起来。

标签: sqlsql-servertsql

解决方案


author对表使用另一个联接

SELECT [NAME], LASTNAME, AVG(titles.price) 
FROM titles
INNER JOIN titleauthor 
    ON titles.tit_id = titleauthor.tit_id
INNER JOIN author 
    ON author.AU_ID=titleauthor.AU_ID
GROUP BY titleauthor.tit_id, [NAME], LASTNAME

推荐阅读