图书isbn用户ID用户评分评论日期
1443434973, 2, 2,"Big Brother said this book was a four out of 5.", 2008-06-09
1501142976, 1, 3,"The book was scary, too scary.", 2006-05-04
1594130000, 3, 4,"The moview was better.", 2008-06-10
1501142976, 4, 5,"I have been inspired to pursue a career as a clown",2019-03-04
当我询问
SELECT * ,AVG(rating)
FROM geektextdb.rating
WHERE book_isbn = '1501142976';`
我只得到表中的第二行,但我正试图得到第二行和第四行。
p、 我不确定这篇文章是否格式良好,我使用这个网站很多,但任何关于格式的提示将是有益的
2条答案
按热度按时间qni6mghb1#
我想你想要的是一个窗口函数,而不是聚合:
mefy6pfw2#
这不是有效的聚合查询。如果你想知道
book_isbn
,然后:这将提供一个标量结果集(一行一列),其中包含该书的平均评级。
另一方面,如果您希望所有行以及每行上重复的平均评级,那么您可以使用窗口函数(仅在mysql 8.0中提供):
如果您希望同时对所有书籍获得相同的结果,以及对每本书的平均评分,那么下面是等效的查询。
聚合(每本书一行):
开窗: