mysql一条sql统计某个字段不同值的个数 10

比如table种有status,name两个字段,我现在需要统计到所有status=2的个数和status=2的个数但是按name分组统计,请问有我们办法用一条sql查出... 比如table种有status,name两个字段,我现在需要统计到所有status=2的个数和status = 2的个数但是按name分组统计,请问有我们办法用一条sql查出来么
问题描述错了,是所有status=2的个数和status != 2的
展开
 我来答
hushlala
2018-03-31 · TA获得超过4231个赞
知道小有建树答主
回答量:5
采纳率:0%
帮助的人:895
展开全部

以时间为跨度统计不同的值,在该时间出现的次数。

语言如下:

select count(*),'列名' from tablename group by '列名'


select count(*),a_yqm from user group by a_yqm

举例:

这里,我要查询出1年内每个月份periods字段不同值的次数。
比如下图中可见的2015-4月,periods为2出现了3次,3出现了1次,最关键的是 periods你不知道有多少种可能的值,也许这个月有1,也许没有。

longrenyingdc8ecb1
2015-11-21 · TA获得超过1万个赞
知道大有可为答主
回答量:6032
采纳率:82%
帮助的人:2290万
展开全部
可以加一个参数就可以
select name,count(*) from table where status=2 group by status,name with rollup;
如果mysql中这么写不行,那么就用嵌套的写法
select * from (select status,name,count(*) from table group by status,name with rollup)
where ststus=2;
追问
这样不行,还有这样里面会统计出status != 2 的数据么
追答
你说的是=2和不等于2的个数,哎,大哥我写答案的时候你还没修改问题描述吧,不好用这种质问的口气吧,这样不好。写法不难,自己加油吧。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友61f144c3
2015-11-21 · TA获得超过4145个赞
知道小有建树答主
回答量:1224
采纳率:71%
帮助的人:364万
展开全部
select name,count(1)
from table
where status=2
group by name
追问
问题描述错了,是所有status=2的个数和status != 2的个数
追答
select name,
sum(case when status=2 then 1 else 0 end ),
sum(case when status2 then 1 else 0 end )
from table
group by name
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
萧道子
2018-12-24
知道答主
回答量:4
采纳率:0%
帮助的人:3500
展开全部

SELECT 

COUNT(*) AS 总数,

SUM(CASE WHEN create_time < '2018-01-01 00:00:00' THEN 1 ELSE 0 END) AS 年前数据总量,

SUM(CASE WHEN create_time > '2018-01-01 00:00:00' THEN 1 ELSE 0 END) AS 年后数据总量,

FROM

T_YEAR

(create_time > '2018-01-01 00:00:00') 是查询的条件 用法同 WHERE一致


已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式