Sql 您可以在另一个查询中执行计数查询并使用结果吗?
我可以运行查询吗:Sql 您可以在另一个查询中执行计数查询并使用结果吗?,sql,join,count,Sql,Join,Count,我可以运行查询吗: Select id, ( select count(*) from tableA as a where a.value < a.id ) from tableA as a where id < 5 得到我想要的结果。如果没有,是否有一种方法可以在不进行两次查询的情况下执行相同的操作?您可以,但您可能需要修复别名,因为它可能无法按您的方式工作 SELECT id, COUNT(id) FROM tableA a WHERE id < 5 GROU
Select id, (
select count(*) from tableA as a where a.value < a.id
)
from tableA as a where id < 5
得到我想要的结果。如果没有,是否有一种方法可以在不进行两次查询的情况下执行相同的操作?您可以,但您可能需要修复别名,因为它可能无法按您的方式工作
SELECT id, COUNT(id) FROM tableA a WHERE id < 5 GROUP BY id HAVING a.value < a.id
此外,它将比作为单个select语句执行要慢得多。可以,但可能需要修复别名,因为它可能无法按您的方式工作 而且,如果您可以将它作为一个select语句来执行,那么它的速度会慢很多。试试看
Select a.id, mycount
from tableA as a
join
(select a1.id, count(*) as mycount from tableA as a1 where a.value < a.id) b
on a.id = b.id
where a.id < 5
试一试
你能举一个例子说明你想要实现什么样的输出,并让我们知道什么类型的数据库服务器ms、mysql、oracle吗?。我的想法如下所示,但具体语法可能因服务器类型而异:
SELECT id, COUNT(CASE WHEN a.value < a.id THEN a.id ELSE NULL END) AS count
FROM tableA AS a
GROUP BY id
你能举一个例子说明你想要实现什么样的输出,并让我们知道什么类型的数据库服务器ms、mysql、oracle吗?。我的想法如下所示,但具体语法可能因服务器类型而异:
SELECT id, COUNT(CASE WHEN a.value < a.id THEN a.id ELSE NULL END) AS count
FROM tableA AS a
GROUP BY id