我有一个查询
SELECT bk_publisher, bk_price FROM books
GROUP BY bk_price, bk_publisher
和
SELECT bk_publisher ,bk_price FROM books
两者都返回相同的结果。意味着我的表中有12条记录,两条查询都返回12条记录。有什么不同 ?虽然我使用的是group by,它与聚合函数一起使用。但我想知道这是一个群体吗?在这里有所作为吗?
答案 0 :(得分:2)
SELECT bk_publisher, bk_price FROM books
GROUP BY bk_price, bk_publisher
即使您的表包含重复数据,也会产生不同的(发布者,价格)对。
答案 1 :(得分:0)
SQL group by可帮助您按不同的值(使用其他值上的聚合函数)对不同的结果进行分组
在您的情况下,它并不意味着什么,但是当您想要根据相同的字段聚合值时,您可以使用group by。
例如,如果您想获得发布商的最高价格:
SELECT bk_publisher, max(bk_price) FROM books
GROUP BY bk_publisher
答案 2 :(得分:0)
GROUP BY语句用于将结果集分组为一个或多个列。当您有重复数据并且希望每个条目都有单个记录时,将使用分组依据。
答案 3 :(得分:0)
当您使用GROUP BY
时,它会将GROUP BY
中列出的具有相同列的多行挤压为输出中的单行。
这也意味着,通常,SELECT
列表中提到的所有其他列必须包含在聚合函数中,如sum()
,avg()
,count()
等。
像MySQL这样的SQL引擎不允许使用聚合,但很多人认为这是一个错误。
答案 4 :(得分:0)
GROUP BY 子句显然没有效果,因为没有bk_price, bk_publisher
值的重复组合。