初学者SQL问题:具有多个COUNT(*)结果的算术

前端之家收集整理的这篇文章主要介绍了初学者SQL问题:具有多个COUNT(*)结果的算术前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
继续使用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

@H_404_6@SELECT COUNT(*) FROM Users WHERE Users.Reputation >= 10000

结果:

@H_404_6@556

Query#2

@H_404_6@SELECT COUNT(*) FROM USERS

结果:

@H_404_6@227691

现在,我如何将它们组合成一个查询?这个查询成语叫什么?我需要写什么,所以我可以得到一个像这样的一行三列结果:

@H_404_6@556 227691 0,00244190592

解决方法

您可以使用 Common Table Expression (CTE): @H_404_6@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

猜你在找的MsSQL相关文章