sql中groupby1,2是什么意思总

治疗白癜风医院哪家好 https://wapyyk.39.net/bj/zhuanke/89ac7.html

在学习mysql数据库时,看到groupby语句写的是

groupby1,2

例如下面这条sql

selectid,user_namefromtb_usergroupby1,2orderby1,2

其中对于groupby1,2和orderby1,,2我不明白这是什么意思。

查了下资料,才知道1,2相当于第一列,第二列。

groupby,orderby后面跟数字,指的是select后面选择的列(属性),1代表第一个列(属性),依次类推。

这样一来,上面的SQL等价于

selectid,user_namefromtb_usergroupbyid,user_nameorderbyid,user_name

值得注意的是这个索引是从1开始,而不是从0开始。这种操作也可以应用到orderby子句。

“纸上得来终觉浅,绝知此事要躬行。”强调了做学问的功夫要下在哪里的重要性。

不妨在自己有空的时候在工具上实践下,验证下真伪。

知道了groupby1,2是什么后,我们再来深入了解下groupby、having的用法的用法。

关键字groupby、having的用法

groupby顾名思义group表示分组,by后面写字段名,就表示根据哪个字段进行分组。

需要注意的是groupby必须得配合聚合函数来用,分组之后你可以计数(count),求和(sum),求平均数(avg)等。

常见的聚合函数有

count()计数

sum()求和

avg()平均数

max()最大值

min()最小值

groupby+聚合函数语法

语法:

selectcolumn_name,aggregate_function(column_name)fromtable_namewherecolumn_nameoperatorvaluegroupbycolumn_name;

提到groupby也该到having出场了,having相当于条件筛选,但它与where筛选不同,having是对于groupby对象进行筛选。

举个例子:

如果我们想要进一步知道每台设备,访问页面路径超过的设备是哪些,这个时候就可以用having了。

selectdistinctId,count(distinctId)fromtable_namegroupbydistinctIdhaving(count(distinctId))

在学习时,建议结合实践来看,不能纸上谈兵,要“亲身躬行”,学习起来效率会高些。

总结:

groupby1,2,select后面选择的列(属性),1代表第一个列(属性),依次类推

having基本用法having相当于条件筛选,但它与where筛选不同,having是对于groupby对象进行筛选。




转载请注明:http://www.aierlanlan.com/rzgz/4501.html