初学者SQL问题:具有多个COUNT(*)结果的算术
发布时间:2021-05-16 11:05:52 所属栏目: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 (编辑:永州站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- 数据库 – 查询最后一天,上周,上个月的SQLite
- 某年第一周实施日期实现方法
- sql-server-2008-r2 – 使用sp_启动用户存储过程的名称仍然
- sql-server – 为什么在我的测试用例中,顺序GUID键的执行速
- sql-server – 链接服务器问题.无法使用Windows身份验证作为
- sql创建数据库有中文乱码是啥原因?如何处理?
- 简单触发器的使用 传授于SQL初学者
- sql-server-2000 – 如何从PHP 5.3及更高版本连接到MSSQL 2
- sql-server-2005 – 用户定义的函数输出进行Nhibernate过滤
- 如何在transact sql语句中使用单引号
站长推荐
热点阅读