en MySQL, quiero seleccionar la parte inferior 2 artículos de cada categoríade consultas SQL para seleccionar inferior 2 de cada categoría
Category Value
1 1.3
1 4.8
1 3.7
1 1.6
2 9.5
2 9.9
2 9.2
2 10.3
3 4
3 8
3 16
Dándome:
Category Value
1 1.3
1 1.6
2 9.5
2 9.2
3 4
3 8
Antes de que migraron de sqlite3 que tenía para seleccionar primero el más bajo de cada categoría, y luego excluir todo lo que se haya unido a eso, tuve que volver a seleccionar el más bajo de cada categoría. Entonces cualquier cosa igual a la nueva más baja o menos en una categoría ganada. Esto también elegiría más de 2 en caso de un empate, lo cual era molesto ... También tuvo un tiempo de ejecución realmente largo.
Mi objetivo final es contar la cantidad de veces que un individuo está en uno de los 2 más bajos de una categoría (también hay un campo de nombre) y esta es la única parte que no sé cómo hacer. Gracias
¿Existe también un identificador que es único para cada fila? –
Como no te gustaron los lazos, ¿cómo planeas evitarlos? Cualquier solución que se le ocurra a alguien tendrá que lidiar con los vínculos de alguna manera, por lo que debe tratar de deletrear específicamente las reglas que los rigen. –
Etiqueté esta pregunta con 'greatest-n-per-group' porque es similar a muchas otras preguntas formuladas en StackOverflow con esa etiqueta. Aunque entiendo que estás pidiendo los * menos * valores por grupo, la técnica para resolverlo es la misma. –