En una tabla guardo las letras y en otra los nombres, me gustaría saber las veces que aparecen esas letras en esos nombres.
TablaNombres
____________
Maria
Juana
Creic
Pablo
Saam
Lucas
TabladeLetras
___________
a
b
c
aa
bb
cc
Y que el resultado sea este para este ejemplo el siguiente:
a | 5
b | 1
c | 1
d | 0
aa | 1
bb | 0
Es decir el nombre Saam lleva dos "aes"; cuento una como "a" y otra como "aa" igual que juana que contaria solo una como "a".
He pensado en los siguiente:
Para un SOLO ejemplo sería así
Código SQL:
Ver original
SELECT Nombres,COUNT(*) FROM TablaNombres WHERE Nombres LIKE '%a%' GROUP BY Nombres
Pero claro en el like no puedo meterle todos los registros que devuelve la tabla letras.
Había pensado un cross join, pero como le meto el like?
perdidisimo que voy... la tabla letras tiene 7 millones de registros y la tabla nombres 2000, un cross join sería durisimo, pero el tiempo no es problema, tengo todo el del mundo