0

我有一个查询

SELECT bk_publisher, bk_price FROM books
GROUP BY bk_price, bk_publisher

SELECT bk_publisher ,bk_price FROM books

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

4

5 回答 5

2
SELECT bk_publisher, bk_price FROM books
GROUP BY bk_price, bk_publisher

即使您的表包含重复数据,也会产生不同的(出版商、价格)对。

于 2013-04-10T09:10:43.813 回答
0

SQL group by帮助您按某个相同的值对不同的结果进行分组(对其他值使用聚合函数)

在您的情况下,它没有任何意义,但是当您想要基于相同字段聚合值时,您可以使用 group by。

例如,如果您想获得发布商的最高价格:

SELECT bk_publisher, max(bk_price) FROM books
GROUP BY bk_publisher
于 2013-04-10T09:11:39.120 回答
0

GROUP BY 语句用于按一个或多个列对结果集进行分组。当您有重复数据并且希望每个条目有一条记录时,使用分组依据。

于 2013-04-10T09:12:46.783 回答
0

当您使用时,它会挤压在输出中作为单行GROUP BY列出的具有相同列的多行。GROUP BY

这也意味着通常,SELECT列表中提到的所有其他列都必须包装在聚合函数中,如sum(), avg(),count()等。

一些 SQL 引擎(如 MySQL)允许不使用聚合,但许多人认为这是一个错误。

于 2013-04-10T09:12:49.167 回答
0

GROUP BY子句显然没有效果,因为没有重复的bk_price, bk_publisher值组合。

于 2013-04-10T09:15:51.707 回答