Mysql
 sql >> Base de données >  >> RDS >> Mysql

Comptage des champs avec la même valeur

Maintenant que vous avez une vue enveloppant votre logique compliquée, vous pouvez structurer une requête comme celle-ci pour obtenir ce que vous recherchez :

SELECT vt.*, vtij.nome_count
FROM view_teste vt
    INNER JOIN (SELECT Nome, count(1) as nome_count FROM view_teste
        WHERE [additional_filter_conditions]
            GROUP BY Nome) vtij on vtij.Nome = vt.Nome
WHERE [additional_filter_conditions]

Notes supplémentaires :(1) Cela peut ne pas être performant, mais cela vaut la peine d'essayer puisque vous n'êtes pas à l'origine de cette requête ! Optimiser cette requête serait une bête. (2) Vous avez une clause ORDER BY à votre avis qui est un impact sur les performances qui n'est pas nécessaire. Vous devez supprimer cela et faire le ORDER BY souhaité dans votre requête, pas dans votre vue.