在查询中使用group by有什么不同吗?

时间:2013-04-10 09:08:35

标签: sql group-by

我有一个查询

SELECT bk_publisher, bk_price FROM books
GROUP BY bk_price, bk_publisher

SELECT bk_publisher ,bk_price FROM books

两者都返回相同的结果。意味着我的表中有12条记录,两条查询都返回12条记录。有什么不同 ?虽然我使用的是group by,它与聚合函数一起使用。但我想知道这是一个群体吗?在这里有所作为吗?

5 个答案:

答案 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值的重复组合。