Hallo Selfer!
Ich möchte aus einzelnen Keywörter, die in der Datenbank gespeichsert sind, die herausfiltern, die die meisten Einträge haben. Soweit funktioniert das auch ganz gut.
SELECT index_words.baseword AS word, MAX( index_rel.count ) AS count, [...]
FROM pages
LEFT JOIN index_phash ON ( index_phash.data_page_id = pages.uid )
LEFT JOIN index_rel ON ( index_rel.phash = index_phash.phash )
LEFT JOIN index_words ON ( index_words.wid = index_rel.wid )
WHERE index_words.baseword IS NOT NULL AND CHAR_LENGTH( index_words.baseword ) > 4 AND index_words.metaphone > 0
GROUP BY index_words.wid, index_words.metaphone
ORDER BY count DESC
LIMIT 0,15
Ergebnis:
quelle 15
wikipedia 15
defninition 15
werden 12
website 10
banners 9
seite 9
weblog 8
bewertung 8
einer 8
referrer 8
popups 7
google 7
klick 7
webseiten 7
Jetzt will ich aber, das diese Untermenge nochmals zufällig sortiert wird. Mach ich aber ein ORDER BY RAND(), dann werden ALLE Datensätze sortiert und nicht nur die oben ausgegebenen. Womit nicht mehr die häufigsten Keywords angezeigt werden, sondern auch die, die nur einmal vorkommen.
Gibt's da einen speziellen Trick, oder soll man das über ein SubSelect machen?
lg lixx