我能运行查询:您可以在另一个查询中进行计数查询并使用结果吗?
Select id, (
select count(*) from tableA as a where a.value < a.id
)
from tableA as a where id < 5
,并得到我想要的结果。如果没有,有没有办法做同样的事情,而不必做2个查询?
我能运行查询:您可以在另一个查询中进行计数查询并使用结果吗?
Select id, (
select count(*) from tableA as a where a.value < a.id
)
from tableA as a where id < 5
,并得到我想要的结果。如果没有,有没有办法做同样的事情,而不必做2个查询?
SELECT id, COUNT(id) FROM tableA a WHERE id < 5 GROUP BY id HAVING a.value < a.id
你可以但你可能想要修复你的别名,因为它可能无法按你的方式工作。
而且,如果您可以将它作为单个选择语句来执行,它将会慢很多。
尝试
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和甲骨文),并让我们知道什么类型的数据库服务器。我正在考虑类似下面的内容,但确切的语法可能会因服务器类型而有所不同:
SELECT id, COUNT(CASE WHEN a.value < a.id THEN a.id ELSE NULL END) AS count
FROM tableA AS a
GROUP BY id