Yo usaría otro esquema con tres tablas
usuario
usuario_id (INT) PK
apellidos VARCHAR
nombre VARCHAR
telefonousuario
telefonousuario_id (INT) pk
refidusuario (INT) FK
telefono INT o varchar
nºorden INT
llamadas
llamada_id ( INT) PK
refidtelefono (INT) FK
tiempo (time)
con datos:
usuario
usuario_id|apellidos|nombre
1|Ramírez Sanz|Felipe (nombres inventados)
2|Sánchez|Luis
telefonousuario
telefonousuario_id|refidusuario|telefono|nºorden
1|1|999999999|1
2|1|666666666|2
3|2|888888888|1
4|2|444444444|2
llamadas
llamada_id|refidtelefono|tiempo
1|1|00:15:22
2|4|00:02:54
3|3|00:24:06
etc.
CONSULTA:
Código sql:
Ver originalSELECT CONCAT(usuario.nombre,' ', usuario.apellidos) nombre_propietario, telefonousuario.telefono,
SEC_TO_TIME(SUM(TIME_TO_SEC(llamadas.tiempo))) total_tiempo_telefono
FROM llamadas INNER JOIN telefonousuario ON llamadas.refidtelefono = telefonousuario.telefonousuario_id
INNER JOIN usuarios ON usuarios.usuario_id = telefonousuario.telefonousuario_id
GROUP BY telefonousuario.telefonousuario_id
No lo he probado.
He puesto el teléfono como INT, pero puedes ponerlo como VARCHAR si quieres escribir guiones separadores.
EDITO: se podrían mejorar otras cosas, como hacer que refidtelefono de llamadas fuera numérico y estuviese relacionado con numero de telefonousuario_id (con lo que el cruce lo haces ON telefonousuario.telefonousuario_id = llamadas.refidtelefono), pero no sé cómo vas a cargar esos datos en las tablas. He corregido los datos para que los veas de esta otra forma.