表结构如下:
| category | state | target_id |
| a | 0 | 1 |
| a | 1 | 1 |
| b | 1 | 1 |
| b | 2 | 1 |
| c | 3 | 1 |
| d | 2 | 2 |
想要的结果是: target_id 为 1 且 state>0 的 category 类别的的个数,比如,以上只有 a 、b 、c 符合,所以,结果是 3 。
表结构如下:
| category | state | target_id |
| a | 0 | 1 |
| a | 1 | 1 |
| b | 1 | 1 |
| b | 2 | 1 |
| c | 3 | 1 |
| d | 2 | 2 |
想要的结果是: target_id 为 1 且 state>0 的 category 类别的的个数,比如,以上只有 a 、b 、c 符合,所以,结果是 3 。
|
DelayNoMayAug 7, 2020
3
用 group by category,再按条件 count 一下
|
|
whisper3032Aug 7, 2020
4
select count(distinct category) from table where target_id = 1 and state > 0
|
|
5
搞表格搞了半天,现在主题不可编辑了,上面写错了,结果应该是只有 b 、c 符合,结果是 2.
|
|
9
|
|
DelayNoMayAug 7, 2020
10
select count(1) from table where state>0 and target_id = 1 group by category
|
|
butterf1yAug 7, 2020
11
SELECT count(*) FROM(SELECT DISTINCT category from t_test WHERE target_id = 1 AND state > 0)as temp;
|
|
flowfireAug 7, 2020
12
不是 group by 吗。。。。子查询里 group by,再 count 计数
但是感觉这么搞性能方面很堪忧 |
|
13
group by category having min(state) > 0
|
|
14
@shine20070522 #13 感谢老哥!
|
|
zhuangjiaAug 7, 2020
15
考试场景:查找所有科目成绩都及格的同学人数
|