首页 > 解决方案 > 同一张表上的两个 select 语句并获取 Count(*)

问题描述

我试图在同一张表上执行两个查询以获取 Count(*) 值。

我有这个

SELECT `a`.`name`, `a`.`points` FROM `rank` AS a WHERE `id` = 1

在同一个查询中,我想这样做

SELECT `b`.`Count(*)` FROM `rank` as b WHERE `b`.`points` >= `a`.`points`

我尝试搜索但没有找到如何Count(*)在同一个查询中执行。

标签: mysql

解决方案


正如我从问题中了解到的那样,您想在给定 id 的表中找出有多少行的点大于该行。这可以使用完全连接来实现。

select count(*) from rank a join rank b on(a.id != b.id) where a.id=1 and b.points >= a.points;

推荐阅读