Ho una tabella in MySQL che contiene un nome di colonna category
. Sto provando a scrivere una query che restituirà 2 record casuali da ogni category
.Recupera un numero arbitrario di righe casuali da ogni categoria 'raggruppa per' in MySQL
Ecco il codice che uso per ottenere 2 record da ciascuna category
con i valori più alti della mia rating
colonna:
SELECT e1.*
FROM entries AS e1
WHERE (SELECT Count(*)
FROM entries AS e2
WHERE e2.category = e1.category
AND e1.rating <= e2.rating) <= 2
ORDER BY category,
rating DESC
controllare questo link per vedere una tabella con alcuni dati di esempio e l'interrogazione di cui sopra: http://sqlfiddle.com/#!9/bab8e/1
cosa esattamente si richiede. 2 record casuali da ogni categoria giusto ?? o qualcosa del genere, fa riferimento alla query che hai incluso ..!? – Chella
La query è lì solo per mostrare a cosa sto lavorando, diciamo che ho 30 voci in una tabella 10 di ogni categoria, vorrei recuperare 2 voci casuali di ciascuna di queste categorie. Ciò restituirebbe 6 risultati. – Ivar
Dai un'occhiata a questo post: http://stackoverflow.com/questions/984396/how-to-get-mysql-random-integer-range – ntgCleaner