sql 关于 count(*)和 group by 的用法
selectcount(*)from******aleftjoin****groupbya._,a._a._……查询出来的结果是怎么实现为结果是...
select count(*) from ****** a left join **** group by a._,a._ a._ ……
查询出来的结果是
怎么实现为 结果 是 展开
查询出来的结果是
怎么实现为 结果 是 展开
5个回答
展开全部
如表为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
2017-07-13 · 知道合伙人软件行家
关注
展开全部
select count(*) num from
(select id from stutent where 1=1 group by age)
user
注意的是group by 为子查询
亲,满意采纳哦!
(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
想实现你下面的结果 就需要去掉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中
如果你是想查有多少记录数,就直接
select count(1) from table1 left join table2 on table....
后面不用group by
如果是按照某个条件分组统计,就将你需要分组的列加入到group by中
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
count(*) 是计算个数的结果为48! 你后面group by 接什么都是这一个结果! 你数一数你这个表应该有48条数据!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询