2009-06-05 36 views

回答

5
SELECT id, COUNT(id) FROM tableA a WHERE id < 5 GROUP BY id HAVING a.value < a.id 
0

你可以但你可能想要修复你的别名,因为它可能无法按你的方式工作。

而且,如果您可以将它作为单个选择语句来执行,它将会慢很多。

1

尝试

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 
0

可不可以给什么输出,您正在努力实现的一个例子 - (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 
相关问题