2009-06-05 5 views

Répondre

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

Vous pouvez mais vous voudrez peut-être corriger vos alias parce que cela peut ne pas fonctionner comme vous l'avez.

En outre, il sera beaucoup plus lent que si vous pouviez le faire comme une seule instruction de sélection.

1

essayer

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

Pourriez-vous donner un exemple de ce que la sortie que vous essayez d'atteindre - (? Ms, mysql, oracle) et faites-nous savoir quel type de serveur de base de données. Je pense quelque chose comme ci-dessous, mais la syntaxe exacte pourrait être différente selon le type de serveur:

SELECT id, COUNT(CASE WHEN a.value < a.id THEN a.id ELSE NULL END) AS count 
FROM tableA AS a 
GROUP BY id 
Questions connexes