一句SQL能否取总量和指定条件的占比?

fxxyz 2014-12-17 03:24:41
数据库结构如

id tid ok
1 10 0
2 10 1
3 11 0
4 10 0


比如取tid=10的数量和tid=0且ok=1的数量
结果为:1/3

用一句SQL获取到这个结果

3代表tid=10的总记录数,1代表ok=1的总记录数
...全文
387 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
试试这个:
	  select count(case when tid = 10 then 1 end) / count(case when tid = 0 and ok = 1 then 1 end)
	  from t
还在加载中灬 2014-12-17
  • 打赏
  • 举报
回复
SELECT COUNT(CASE WHEN ok=1 THEN 1 END)*1./COUNT(1)
FROM TB
WHERE tid=10
/*0.33333333333*/
--小F-- 2014-12-17
  • 打赏
  • 举报
回复
SELECT ltrim(SUM(OK))+
       '/'+
      ltrim(COUNT(*)) result
  FROM table1
 WHERE tid = 10
Tiger_Zhao 2014-12-17
  • 打赏
  • 举报
回复
SELECT Convert(varchar(11),SUM(OK))+
'/'+
Convert(varchar(11),COUNT(*)) result
FROM table1
WHERE tid = 10

result
-----------------------
1/3

27,579

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧