Mysql
 sql >> Database >  >> RDS >> Mysql

Conteggio di campi con lo stesso valore

Ora che hai una vista che racchiude la tua logica complicata, puoi strutturare una query come questa per ottenere ciò che stai cercando:

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]

Note aggiuntive:(1) Questo potrebbe non essere performante, ma vale la pena provare poiché non hai originato questa query! Ottimizzare questa query sarebbe una bestia. (2) Secondo te, hai una clausola ORDER BY che è un colpo di performance non necessario. Dovresti rimuoverlo ed eseguire l'ORDER BY desiderato nella tua query, non nella tua vista.