Limitar ID similares - resultados en sql

2 Tengo una tabla de elementos repetidos, hice esta tabla desde una combinación izquierda. - Digamos que este alias de tabla está "picado"

ID     Product         PickedBY
1      Basket          Josh
1      Basket          Jessica
1      Basket          Josh
1      Basket          Mike
1      Basket          Mike
2      Seat            Alan
3      Computer        Jessica
4      Mouse           Josh
4      Mouse           Mike
4      Mouse           Jessica

Deseo limitar los Id iguales a 2. ¿Cómo lo hago? entonces, si enumero solo el resultado de ID, se verá 1,1,2,3,4,4.

Muchas Gracias

preguntado el 30 de junio de 12 a las 21:06

por favor, elabore un límite de ID iguales a 3 -

¿Por qué desea limitar la frecuencia con la que se repite una identificación? -

sí, el límite es dos, fue un error tipográfico, lo edité ahora;) -

2 Respuestas

Su pregunta no tiene sentido para mí, lo que me hace preguntarme qué quiere lograr con esa consulta, pero puede intentar agrupar los resultados:

select id, count(*)
from piked
group by id

Eso no es exactamente lo que preguntó, pero puede saber si una identificación tiene duplicados mirando la segunda columna del resultado. el resultado será

1,5
2,1
3,1
4,3

Respondido el 30 de junio de 12 a las 21:06

Esto debería funcionar:

SELECT ID, Product, PickedBy FROM (
SELECT
IF(@prev != q.ID, @rownum:=1, @rownum:=@rownum+1) as rownumber, @prev:=q.ID, q.*
FROM (
    SELECT
    ID, Product, PickedBy
    FROM piked
    , (SELECT @rownum:=0, @prev:=0) r
    ORDER BY ID
)q
)asdf
WHERE asdf.rownumber <= 2

Respondido el 30 de junio de 12 a las 22:06

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.