0

クエリを実行できますか:

Select id, (
    select count(*) from tableA as a where a.value < a.id
) 
from tableA as a where id < 5 

そして、私が望んでいた結果を得る。そうでない場合、2 つのクエリを実行せずに同じことを行う方法はありますか?

4

4 に答える 4

5
SELECT id, COUNT(id) FROM tableA a WHERE id < 5 GROUP BY id HAVING a.value < a.id
于 2009-06-05T19:03:02.787 に答える
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
于 2009-06-05T19:06:55.710 に答える
0

できますが、エイリアスを修正する必要があるかもしれません。

また、単一の選択ステートメントとして実行できる場合よりもはるかに遅くなります。

于 2009-06-05T19:03:10.103 に答える
0

達成しようとしている出力の例を教えてください。また、データベース サーバーの種類 (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
于 2009-06-05T19:11:24.610 に答える