初学者SQL问题:具有多个COUNT(*)结果的算术
发布时间:2021-05-16 17:24:30 所属栏目:MsSql教程 来源:网络整理
导读:继续使用Stack Exchange Data Explorer学习SQL的精神(参见: Can we become our own “Northwind” for teaching SQL / databases?),我决定尝试编写一个查询来回答一个简单的问题(关于元): What % of stackoverflow users have over 10,000 rep?. 这就是
继续使用Stack Exchange Data Explorer学习SQL的精神(参见: Can we become our own “Northwind” for teaching SQL / databases?),我决定尝试编写一个查询来回答一个简单的问题(关于元): What % of stackoverflow users have over 10,000 rep?. 这就是我所做的: Query#1 SELECT COUNT(*) FROM Users WHERE Users.Reputation >= 10000 结果: 556 Query#2 SELECT COUNT(*) FROM USERS 结果: 227691 现在,我如何将它们组合成一个查询?这个查询成语叫什么?我需要写什么,所以我可以得到一个像这样的一行三列结果: 556 227691 0,00244190592 解决方法您可以使用 Common Table Expression (CTE):WITH c1 AS ( SELECT COUNT(*) AS cnt FROM Users WHERE Users.Reputation >= 10000 ),c2 AS ( SELECT COUNT(*) AS cnt FROM Users ) SELECT c1.cnt,c2.cnt,CAST(c1.cnt AS FLOAT) / c2.cnt FROM c1,c2 (编辑:徐州站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- sql-server – SSD上的SQL Server数据库 – 对于每个表的单
- SQL集合函数中case when then 使用技术
- sql – InnoDB排序真的很慢吗?
- sql-server – 在不返回任何行的查询中包含ORDER BY会严重影
- sql-server – 帮助安装SQL Server 2017 – VS Shell安装失
- master数据库损坏怎么办?有什么解决方法?
- sql-server – Transact-SQL查询中字符串前的N前缀
- SQL语句练习实例应用——平均销售等待时间
- sql的存储过程定义有哪些方法,你知道几种?
- sql-server – 恢复数据库,不包括FILESTREAM数据
站长推荐
热点阅读