J'essaye, mais recevez l'erreur suivante ... P> Erreur SQL: l'opérande doit contenir 1 colonne (s) p>
blockQuote> s'il vous plaît, et merci p> éditer:
cela fait exactement je veux, mais je pense que ce n'est pas la bonne façon de faire
(J'ai changé les noms désolé, mais il a l'air mieux) p> essentiellement combien d'enfants sont et combien sont de chaque type xd p> p>
Salut! Cela fonctionne bien, mais j'ai besoin de compter plus de fils, mais d'une condition
3 Réponses :
mySQL 8 a les fonctions de la fenêtre. Par conséquent, vous pouvez écrire votre requête en elle comme ceci:
SELECT t1.*, COUNT(*) OVER(PARTITION BY t1.id ORDER BY t1.id) AS sons,
COUNT(CASE WHEN t1.type = 3 THEN t1.type END) OVER (PARTITION BY t1.id ORDER BY t1.id) AS Johnny
FROM tabl t1
WHERE t1.sons = ?;
Vous ne pouvez pas définir plusieurs colonnes à une colonne.
(select count(*) from tabl t2 where t2.tabl=t1.id), (select count(*) from tbl1 t3 where t3.type=3)
Est-ce ce que vous recherchez?
select t.*,
count(*) over (partition by id) as sons,
sum(type = 3) over (partition by id) as johnny
from tabl t
having sons = ?;
Veuillez indiquer quelques échantillons de données et vos résultats souhaités.
En outre, votre structure de table serait utile. Est
tabl code> différent detbl1 code>?