sql 关于 count(*)和 group by 的用法

selectcount(*)from******aleftjoin****groupbya._,a._a._……查询出来的结果是怎么实现为结果是... select count(*) from ****** a left join **** group by a._,a._ a._ ……
查询出来的结果是

怎么实现为 结果 是
展开
 我来答
badkano
推荐于2017-10-10 · 知道合伙人体育行家
badkano
知道合伙人体育行家
采纳数:144777 获赞数:885360
团长

向TA提问 私信TA
展开全部

如表为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

你以为你以为de
2017-07-13 · 知道合伙人软件行家
你以为你以为de
知道合伙人软件行家
采纳数:503 获赞数:1339
某培训机构毕业,大专学位。工作2年,喜欢百度知道答题,可以互相学习共通过进步。

向TA提问 私信TA
展开全部
select count(*) num from
(select id from stutent where 1=1 group by age)
user
注意的是group by 为子查询
亲,满意采纳哦!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
jiewukk
2014-10-24 · TA获得超过3207个赞
知道小有建树答主
回答量:903
采纳率:100%
帮助的人:817万
展开全部
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
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
发生等将发生
推荐于2017-10-15 · TA获得超过478个赞
知道小有建树答主
回答量:653
采纳率:75%
帮助的人:320万
展开全部
你有按条件分组
如果你是想查有多少记录数,就直接
select count(1) from table1 left join table2 on table....

后面不用group by

如果是按照某个条件分组统计,就将你需要分组的列加入到group by中
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
小伙伴ol7
2014-10-24
知道答主
回答量:59
采纳率:0%
帮助的人:17.5万
展开全部
count(*) 是计算个数的结果为48! 你后面group by 接什么都是这一个结果! 你数一数你这个表应该有48条数据!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式