Jag tycker också det ser lite överflödigt ut men fick det från w3schools exempel för GROUP BY och HAVING:
http://www.w3schools.com/sql/sql_groupby.asp
Jag har även testat att bara köra amount i HAVING, och det verkar ge samma resultat.
Nu har jag dock lyckats få upp hastighheten på min subquery.
Istället för att köra den i mina WHERE kriteria så kör jag det i FROM vilket gjorde en väldig skillnad:
Kod:
SELECT DISTINCT hand.id as handid
FROM handdata_hand AS hand,
handdata_card AS card1,
handdata_card AS card2,
handdata_players AS players,
handdata_forced AS forced,
handdata_position AS position,
(SELECT SUM(amount) AS sum, hand_id FROM handdata_forced GROUP BY hand_id) AS amount
WHERE card1.hand_id=hand.id
AND card2.hand_id=hand.id
AND players.hand_id=hand.id
.....
AND (
players.player_stack /
amount.sum
) BETWEEN 10 AND 11