GROUP BY x = DISTINCT(所有列-x)吗?

时间:2019-02-19 18:29:43

标签: mysql sql

假设我在一个sql表中有十个字段,那么做GROUP BY field1总是和做SELECT DISTINCT field1, field2, ...一样。为什么或者为什么不?我已经对此进行了一些测试,它在我尝试过的方法中似乎是有效的,但是我正在寻找更严格的解释。

1 个答案:

答案 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 BYDISTINCT相同的结果,只需在GROUP BY子句中包括所有列即可。

较旧的MySQL版本允许GROUP BY的宽松(有些人说是草率的)实现,其中编码的空白用基本假设填补了,这些假设在任何给定情况下都可能有效,也可能无效。实际功能已被用户有效屏蔽。例如the question you linked to.

中的情况

如果您要查找与实际问题更相关的内容,则需要修改您的问题以包括更具体的内容。