mysql count distinct 加条件 1C

mysql count distinct如何加条件?比如有数据表swimTable:

name swimLocation
张三 A

李四 A

李四 B

张三 A

我想统计游泳馆A有多少人过去?不能使用where,想使用如下语句,但是报错了:
select count(if(swimLocation='A'),distinct name,false) from swimTable;

K346K346
恋上猫的大鲤鱼 回复王峰: 可以使用count(distinct case where 条件 then 字段 end),具体参见:https://stackoverflow.com/questions/19672001/mysql-distinct-count-if-conditions-unique
6 个月之前 回复
wang181feng
王峰 你好,你的问题是个非常好问题。我看了下面的回复,基本上都不是你想要的答案。我也遇到了像您一样的count if distinct组合,我想问下您现在的问题解决了吗?怎样解决的?
6 个月之前 回复

5个回答

select count(distinct name) from swimTable group by swimLocation having swimLocation='A'不好意思上面写错函数了,试一下这个行不

K346K346
恋上猫的大鲤鱼 这个确实可以,但是在我的较为复杂的场景下不是使用,我只想问能不能为count distinct 使用if条件来进行统计。
3 年多之前 回复

select swimLocation,count(distinct name) from swimTable group by swimLocation

K346K346
恋上猫的大鲤鱼 这个确实可以,但是在我的较为复杂的场景下不是使用,我只想问能不能为count distinct 使用if条件来进行统计。
3 年多之前 回复

select swimLocation,count(1) from swimTable group by swimLocation

这样会得到 如下数据
A 3
B 1
你循环下数据就可以拿到你想要的数据

K346K346
恋上猫的大鲤鱼 你这个没有去重
3 年多之前 回复

可以使用count(distinct case where 条件 then 字段 end),具体参见:https://stackoverflow.com/questions/19672001/mysql-distinct-count-if-conditions-unique

select sum(distinct name) from swimTable group by swimLocation having swimLocation='A'

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐