2015-12-07 154 views
-1

我试图在一个数据集上使用MIN,MAX和AVG函数,它从一个表中显示书的标题,然后计算每个标题的最小值,最大值和平均值(1-10级)。我的表是这样的:SQL MIN(),MAX()和AVG

ISBN | Title 
12345 | Title1 
45678 | Title2 

书评

ISBN | Rating 
12345 | 4 
45678 | 7 
12345 | 9 

,我想输出的样子:

Title | Min Rating | Max Rating | Average Rating 

我有Ť使用MIN(),MAX()和AVG(),并将两个表格与ISBN上的INNER JOIN连接起来,但我没有将所有这些表格一起打印出来。当我想要打印每个特定标题的最低评分时,我现在所打印的所有书的最低评分(它为每本书打印4)。任何帮助将不胜感激。谢谢!

+1

你有没有运气。这一定是问题所在。 –

+0

你使用了什么'GROUP BY'? –

回答

1

你需要按标题连接表,选择列和组:

SELECT TITLE, MIN(RATING), MAX(RATING), AVG(RATING) 
FROM  BOOK B 
JOIN  BOOK REVIEW BR ON BR.ISBN = B.ISBN 
GROUP BY TITLE 
1
select b.Title, min(br.rating) as `Min Rating`, 
    max(br.rating) as `Max Rating`, avg(br.rating) as `Average Rating` 
from book b 
inner join bookreview br on br.isbn = b.isbn 
group by title