假设我在一个sql表中有十个字段,那么做GROUP BY field1
总是和做SELECT DISTINCT field1, field2, ...
一样。为什么或者为什么不?我已经对此进行了一些测试,它在我尝试过的方法中似乎是有效的,但是我正在寻找更严格的解释。
答案 0 :(得分:1)
使用SELECT DISTINCT
:
SELECT DISTINCT
Column01,
Column02,
Column03,
Column04
FROM
TableA
在功能上与写作相同:
SELECT
Column01,
Column02,
Column03,
Column04
FROM
TableA
GROUP BY
Column01,
Column02,
Column03,
Column04
更具体地说,DISTINCT
与在GROUP BY
列表中的所有列上执行SELECT
相同。如果希望使用GROUP BY
与DISTINCT
相同的结果,只需在GROUP BY
子句中包括所有列即可。
较旧的MySQL版本允许GROUP BY
的宽松(有些人说是草率的)实现,其中编码的空白用基本假设填补了,这些假设在任何给定情况下都可能有效,也可能无效。实际功能已被用户有效屏蔽。例如the question you linked to.
如果您要查找与实际问题更相关的内容,则需要修改您的问题以包括更具体的内容。