Mysql (逗号)和“分组方式”之间的区别是什么?

Mysql (逗号)和“分组方式”之间的区别是什么?,mysql,sql,group-by,Mysql,Sql,Group By,我想找出每学期每门学科的学生人数。 下面是给出正确答案的问题 select semester,subject,count(stdId) from tblSubjectMaster group by subject, semester 但我也尝试过其他的查询,它给出了不同的结果。疑问是 select semester,subject,count(stdId) from tblSubjectMaster group by subject and semester “和”与“分组依据”之间的

我想找出每学期每门学科的学生人数。 下面是给出正确答案的问题

select semester,subject,count(stdId) 
from tblSubjectMaster 
group by subject, semester
但我也尝试过其他的查询,它给出了不同的结果。疑问是

select semester,subject,count(stdId) 
from tblSubjectMaster
group by subject and semester

“和”与“分组依据”之间的区别是什么?

逗号分隔表达式<代码>按科目分组,学期为每对不同的值创建一个单独的组。我想这就是你想要的

使用
的示例只有一个布尔表达式,只有两个不同的组,一个用于true,另一个用于false
是一个布尔运算符。它计算两个操作数的值,然后给出它们之间的布尔连接

因此,它将
主题
学期
计算为布尔值,如果两者都为真,则整个布尔表达式为真。这就是布尔值
的工作方式

MySQL将布尔值视为与整数值1(真)和0(假)相同的东西。因此,它将把
科目
学期
作为数字进行评估。这可能会产生意想不到的结果


如果要按两列分组,则应使用逗号。

按主题分组,学期
意味着在结果集中为
主题
学期
的每个唯一组合创建一行,以及该组合的行数

主题和学期
是一个逻辑表达式,如果
主题
学期
都为真,则为
,否则返回
。如果列包含字符串,则非空值为true,空字符串为false;如果列包含数字,则非零值为true,零为false

因此,在结果中最多可以得到两行。一个组用于两列均为真的所有行,一行用于所有其他行

按col1和col2分组几乎没有用