时间:2021-07-01 10:21:17 帮助过:16人阅读
from
table_name
where
column_name operator valuue
group by
column_name1,column_name2,。。。
比如说:求一个班上的男女各多少人,并且有哪些人,上面的就都用得着:
select 性别,group_concat(人名),count(人名) from 表 group by sex;
如下图所示一样:
select count(*),CarTypeID,group_concat(LicencePlate)from carinfotb_common group by CarTypeID;
我是这么想的:
1、Group by按照某一个column_name分组 ,那么 查询的列就肯定会包含这个column_name,function函数可以是某一个column_name 也可以是 “*”。但是要注意区别:
count(*)对行的数目进行计算,包含NULL
count(column)对特定的列的值具有的行数进行计算,不包含NULL值。
count()还有一种使用方式,count(1)这个用法和count(*)的结果是一样的。
2、 函数可以包含 count,sum,avg等这些数值运算。
3、也可使用group_concat(column_name,。。。)函数,他可以把你分组里面所查的column_name值以‘,’连接起来,得到一个字符串。
4、也可以使用order by 进行排序。
select count(*),CarTypeID,group_concat(LicencePlate)from carinfotb_common group by CarTypeID ORDER BY COUNT(*) DESC;
5、也可以使用 where 和having查询筛选数据
select count(*),CarTypeID,group_concat(LicencePlate)from carinfotb_common WHERE CarTypeID !=‘‘ group by CarTypeID ORDER BY COUNT(*) DESC;
select count(*),CarTypeID,group_concat(LicencePlate)from carinfotb_common WHERE CarTypeID !=‘‘ group by CarTypeID having count(*) > 10 ORDER BY COUNT(*) DESC;
6、group by 可以是多个column_name 。那分组的条件是多个column_name之间的彼此联系。
关键是搞起需求的意图,弄清楚分组的列,运用好函数。 参考文章:http://blog.csdn.net/xxpyeippx/article/details/8059910。 写的更详细。运用了多个列分组。
详细的数据查询结果不是很清晰
关于mysql的初步学习 (四)
标签:group 作用 sel article 包含 运算 注意 sql under