如表为test,数据如下:
id grade
1 100
1 80
2 90
2 80
3 90
此时,可用count可求每个id在表中的个数,可用如下sql语句
select id,count(*) as counts from test group by id;
结果如下:
id counts
1 2
2 2
3 1
但group by还用另一种用法,就是配合having来使用,如表数据不变,现在要求在表中,id出现大于一次的id及个数
select id,count(*) as counts from test group by id having count(*)>1;
结果就是:
id counts
1 2
2 2
select count(*) num from
(select id from stutent where 1=1 group by age)
user
注意的是group by 为子查询
亲,满意采纳哦!
select count(*) from ****** a left join **** group by a._,a._ a._ ……
想实现你下面的结果 就需要去掉group by
直接写
select count(*) from ****** a left join ****
因为用group by的时候,会按照你写的这些a._,a._ a._ ……字段去统计个数,比如group by a.性别 这样就会按照性别去统计,如果再加个姓名 a.性别,a.姓名 这样就会按照姓名和性别去统计,如果有同名的同性别的这样count 出来的结果 才会大于2
你有按条件分组
如果你是想查有多少记录数,就直接
select count(1) from table1 left join table2 on table....
后面不用group by
如果是按照某个条件分组统计,就将你需要分组的列加入到group by中
count(*) 是计算个数的结果为48! 你后面group by 接什么都是这一个结果! 你数一数你这个表应该有48条数据!