请教一个 sql 怎么写

2020 年 8 月 7 日
 coolair

表结构如下:

category state target_id
a01
a11
b11
b21
c31
d22

想要的结果是: target_id 为 1 且 state>0 的 category 类别的的个数,比如,以上只有 a 、b 、c 符合,所以,结果是 3 。

2535 次点击
所在节点    问与答
15 条回复
lxk11153
2020 年 8 月 7 日
233 不支持表格,你可以学我这样子: /t/696035
coolair
2020 年 8 月 7 日
@lxk11153 #1 表格搞定,帮忙看看,多谢。
DelayNoMay
2020 年 8 月 7 日
用 group by category,再按条件 count 一下
whisper3032
2020 年 8 月 7 日
select count(distinct category) from table where target_id = 1 and state > 0
coolair
2020 年 8 月 7 日
搞表格搞了半天,现在主题不可编辑了,上面写错了,结果应该是只有 b 、c 符合,结果是 2.
coolair
2020 年 8 月 7 日
@lxk11153 #1 顺带告诉下你,表格可以直接在 markdown 语法下写<table><tr><td></td></tr></table>
lxk11153
2020 年 8 月 7 日
@coolair #2 怎么搞的? markdown+html(table)吗?
lxk11153
2020 年 8 月 7 日
@coolair #6 呵呵,我已经猜到。[doge]。同样表示感谢
coolair
2020 年 8 月 7 日
@whisper3032 #4
@DelayNoMay #3 不好意思,前面表达有点错误,应该是同一分类所有 state>0 。
DelayNoMay
2020 年 8 月 7 日
select count(1) from table where state>0 and target_id = 1 group by category
butterf1y
2020 年 8 月 7 日
SELECT count(*) FROM(SELECT DISTINCT category from t_test WHERE target_id = 1 AND state > 0)as temp;
flowfire
2020 年 8 月 7 日
不是 group by 吗。。。。子查询里 group by,再 count 计数
但是感觉这么搞性能方面很堪忧
shine20070522
2020 年 8 月 7 日
group by category having min(state) > 0
coolair
2020 年 8 月 7 日
@shine20070522 #13 感谢老哥!
zhuangjia
2020 年 8 月 7 日
考试场景:查找所有科目成绩都及格的同学人数

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://study.congcong.us/t/696466

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX