sql一个表中同时查询两个count的sql语句
答案:4 悬赏:0 手机版
解决时间 2021-03-21 13:00
- 提问者网友:蓝琪梦莎
- 2021-03-20 12:54
sql一个表中同时查询两个count的sql语句
最佳答案
- 五星知识达人网友:一把行者刀
- 2021-03-20 13:47
可以有两种解决方法。
方法1:
SELECt paperName
, COUNT (1) AS 总题数
, sum (CASE WHEN statu = 1 THEN 1 ELSE 0 END) AS 审核题数
FROM question
GROUP BY paperNme
方法2:
select s.总题数, s.审核题数, s.paperName
from (
select COUNT(1) as 总题数, case when status = 1 then count(1) else 0 end as 审核题数, paperName
from question
--where papername in (select distinct paperName from question), 这个条件可以不要了
group by paperNme, stauts -- status也要作为分组字段,因为在case中有使用
) s
方法1:
SELECt paperName
, COUNT (1) AS 总题数
, sum (CASE WHEN statu = 1 THEN 1 ELSE 0 END) AS 审核题数
FROM question
GROUP BY paperNme
方法2:
select s.总题数, s.审核题数, s.paperName
from (
select COUNT(1) as 总题数, case when status = 1 then count(1) else 0 end as 审核题数, paperName
from question
--where papername in (select distinct paperName from question), 这个条件可以不要了
group by paperNme, stauts -- status也要作为分组字段,因为在case中有使用
) s
全部回答
- 1楼网友:迷人又混蛋
- 2021-03-20 15:40
用case when根据条件计数:
select s.总题数, s.审核题数, s.paperNamefrom (
select COUNT(1) as 总题数, case when status = 1 then count(1) else 0 end as 审核题数, paperName
from question
--where papername in (select distinct paperName from question), 这个条件可以不要了
group by paperNme, stauts -- status也要作为分组字段,因为在case中有使用
) s追问你写的也蛮不错,但是别人先回答的问题已近解决了
sorry!追答不错,我也学习了。
- 2楼网友:我住北渡口
- 2021-03-20 15:15
除了count之外还有一个函数叫做 SUM。
SELECt paperName, COUNT (1) AS 总题数
, sum (CASE WHEN statu = 1 THEN 1 ELSE 0 END) AS 审核题数
FROM question
GROUP BY paperNme
papername in(select distinct paperName from question) 这个没意义吧? 都是同一张question表,要不就是你表名写错了。
Good Luck !
追问恩恩,写的这个可以查出来,之前还没怎么用过sum,现在知道了papername in(select distinct paperName from question) 这个写得有点多余了,我在我数据库中是可以查出来的,
感谢感谢 采纳你的了
- 3楼网友:一袍清酒付
- 2021-03-20 14:16
可以有两种解决方法,
所需工具:SQL
查询两个count的方法1:
SELECt paperName, COUNT (1) AS 总题数
, sum (CASE WHEN statu = 1 THEN 1 ELSE 0 END) AS 审核题数
FROM question
GROUP BY paperNme
查询两个count的方法2:
select s.总题数, s.审核题数, s.paperNamefrom (
select COUNT(1) as 总题数, case when status = 1 then count(1) else 0 end as 审核题数, paperName
from question
--where papername in (select distinct paperName from question), 这个条件可以不要了
group by paperNme, stauts -- status也要作为分组字段,因为在case中有使用
) s
备注:两个都可以使用。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯