将不同表中的列与条件和AVG合并

时间:2019-03-14 14:24:26

标签: sql sql-server tsql

我正在使用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

这给了我作者书籍的AVeraGe价格,但我不知道如何将其与作者的名字结合起来。

1 个答案:

答案 0 :(得分:2)

使用另一个联接到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