Mysql 按子句分组理解
Mysql 按子句分组理解,mysql,sql,oracle,Mysql,Sql,Oracle,按a、b、c从组中选择a、b 以上是有效的sql语句吗 不是没有表名的,它不是。如果它有一个表名,它将是有效的,但可能不是很有用 通常,可以将GROUP BY子句与一些聚合函数(SUM、COUNT、MAX、MIN等)结合使用,以导出与分组字段相关的一些值 不是没有表名的,它不是。如果它有一个表名,它将是有效的,但可能不是很有用 通常,可以将GROUP BY子句与一些聚合函数(SUM、COUNT、MAX、MIN等)结合使用,以导出与分组字段相关的一些值 不,你需要一张桌子 按a、b、c从myTab
按a、b、c从组中选择a、b
以上是有效的sql语句吗 不是没有表名的,它不是。如果它有一个表名,它将是有效的,但可能不是很有用
通常,可以将GROUP BY子句与一些聚合函数(SUM、COUNT、MAX、MIN等)结合使用,以导出与分组字段相关的一些值 不是没有表名的,它不是。如果它有一个表名,它将是有效的,但可能不是很有用 通常,可以将GROUP BY子句与一些聚合函数(SUM、COUNT、MAX、MIN等)结合使用,以导出与分组字段相关的一些值 不,你需要一张桌子
按a、b、c从myTable组中选择a、b
其中myTable是您要从中选择的表(必须有a、b和c列)。否-您需要一个表
按a、b、c从myTable组中选择a、b
其中myTable是您要从中选择的表(必须有a、b和c列)。否-因为您没有指定表名。如果您有,那么是的,它肯定对mysql有效,但对Oracle不确定(Oracle验证分组的方式非常不同)。但这没有任何意义
a b c
0 0 0
0 0 1
0 1 0
0 1 1
将查询应用于上表将给出:
0 0
0 0
0 1
0 1
我不认为这会是一个有意义的结果-如果你不想要一个聚合值,那么DISTINCT更有意义-但给出了一个不同的结果:
SELECT DISTINCT a, FROM `atable`
0 0
0 1
如果你解释了你问这个问题的真正原因,也许我们可以做出更明智的尝试来回答它。否-因为你没有指定表名。如果您有,那么是的,它肯定对mysql有效,但对Oracle不确定(Oracle验证分组的方式非常不同)。但这没有任何意义
a b c
0 0 0
0 0 1
0 1 0
0 1 1
将查询应用于上表将给出:
0 0
0 0
0 1
0 1
我不认为这会是一个有意义的结果-如果你不想要一个聚合值,那么DISTINCT更有意义-但给出了一个不同的结果:
SELECT DISTINCT a, FROM `atable`
0 0
0 1
如果你解释了你问这个问题的真正原因,也许我们可以做出更明智的尝试来回答它。如果你包括一个表名,我想你是在问你是否可以按未选择的元素c分组。是的,您可以。如果您包括一个表名,我想您是在问您是否可以按未选择的元素c进行分组。是的,你可以。是的,这个查询是合法的。SQL是否有用完全是另一回事 询问
select a , b
from foo
group by a,b,c
是否有下列情况:
- 将源表中的行分组为不同的组,每个组分别对应于
、a
和b
列的唯一组合c
- 然后将每个这样的组折叠成一行,其中包含分组列和查询所需的任何聚合函数的值
- 结果集然后返回给调用者,抛出任何不需要的列(在本例中为column
)c
groupby
提出要返回的组:
A B C
- - -
0 0 0
0 0 1
0 1 0
0 1 1
1 0 0
1 0 1
1 1 0
1 1 1
查询返回的结果集将是
A B
- -
0 0
0 0
0 1
0 1
1 0
1 0
1 1
1 1
因此,不一定有用。是的,该查询是合法的SQL。SQL是否有用完全是另一回事 询问
select a , b
from foo
group by a,b,c
是否有下列情况:
- 将源表中的行分组为不同的组,每个组分别对应于
、a
和b
列的唯一组合c
- 然后将每个这样的组折叠成一行,其中包含分组列和查询所需的任何聚合函数的值
- 结果集然后返回给调用者,抛出任何不需要的列(在本例中为column
)c
groupby
提出要返回的组:
A B C
- - -
0 0 0
0 0 1
0 1 0
0 1 1
1 0 0
1 0 1
1 1 0
1 1 1
查询返回的结果集将是
A B
- -
0 0
0 0
0 1
0 1
1 0
1 0
1 1
1 1
因此,不一定有用。因为缺少表名,所以不一定有用!你为什么问这个?您是否在MySQL中尝试过上述方法,但失败了,出现了一个不可理解的错误,或者您只是好奇?我很好奇。据我所知,在SELECT子句中指定的列上只允许使用聚合函数,而GROUPBY子句中不允许使用聚合函数。另外,我想知道,是否必须在SELECT子句中包含GROUP BY中指定的所有列。因为缺少表名,所以不是这样!你为什么问这个?您是否在MySQL中尝试过上述方法,但失败了,出现了一个不可理解的错误,或者您只是好奇?我很好奇。据我所知,在SELECT子句中指定的列上只允许使用聚合函数,而GROUPBY子句中不允许使用聚合函数。另外,我想知道,是否必须在SELECT子句中包含GROUP BY中指定的所有列。很抱歉,请从GROUP BY a、b、c中选择a、b。这是声明。很抱歉,请按a、b、c从组中选择a、b。是的,谢谢你的澄清。在设置问题格式时,我忘了包括表名。是的,谢谢你的澄清。在设置问题格式时,我忘了包括表名。这是最有用的答案+一年后,山体滑坡是最有用的答案+1几年后