Lo siento por la pregunta formulada incorrectamente. Intentaré explicarlo una vez más.
Hay dos registros con valor 1. Quiero seleccionar SOLO UN registro que contenga más "|" simbolos
Si solo hay un registro con valor único, debería verlo también.
¿Cómo debo hacer eso?
Respuestas
0 para la respuesta № 1Tal vez....
Simplemente obtenemos una longitud de título menos la longitudtítulo con el | eliminado para encontrar cuántos | había como una sub consulta. Luego, unimos esto a su conjunto de datos base en el valor y el número de ocurrencias. El supuesto de que no hay valor puede tener títulos con el mismo número de | en ellos.
Si existe tal situación: entonces se devolverán ambos (o más) registros para ese valor.
Digo tal vez porque estoy asumiendo que entiendo la pregunta.
SELECT A.*
FROM table A
INNER JOIN (SELECT max(length(title)-length(replace(title,"|","")))as Occurance, value
FROM table
GROUP By Value) B
on A.Value = B.value
and length(title)-length(replace(title,"|","")) = B.Occurance
--------------------- Actualizado para nueva columna
SELECT A.*
FROM TABLE A
INNER JOIN (SELECT max(Components) as MaxComponents, value
FROM Table
GROUP By Value) B
on A.Value = B.value
and A.Components = B.MaxComponents