[mysql] działania matematyczne w zapytaniu

0

Mam o to tabelę o takiej strukturze:

rate_id  	int(10)
rate_table 	varchar(100)
rate_itemid 	int(10)
rate_rating 	int(10)
rate_votes 	int(10)
rate_voters 	text

Nie mogę wymyślić żadnego optymalnego zapytania. Już wyjaśniam.
Przyjmijmy że pole rate_rating to R, rate_votes to V, a suma głosów w elementach z danej tabeli to S, potrzebuję wyniku w wersji:
A=(R*V)/S;
I dokładnie po tym A muszę posortować.
Albo ewentualnie:
B=R/V i też względem tego posortować.

0

I w czym problem? O takie cos chodzi?

select rate_id, (rate_rating * rate_votes) / count(*) A from rates order by A

Nie jestem pewien czy order by A w mysql pojdzie, jak nie, to po prostu wklej poprzedni wzorek. Optymalizator i tak uzna to za jedna rzecz, wiec nie powinien liczyc jeszcze raz.

0

Dzięki, potrzebuję to troszkę inaczej zamiast count(*), SUM(rate_votes).

Ale coś nie działa, bo dostaję komunikat:
#1140 - Mixing of GROUP columns (MIN(),MAX(),COUNT()...) with no GROUP columns is illegal if there is no GROUP BY clause

0

Sorry, nadeszla mnie zacma. Wzorek ma sie tyczyc ktorych wierszy? Chcesz sume iloraz iloczynu przez sume wszystkich wierszy? Bo skoro chcesz cos sortowac, to raczej masz na mysli grupe wierszy. Tak jak wlasnie sugeruje mysql. Jak chcesz pogrupowac wyniki?

0

Już sobie poradziłem, naprowadziła mnie twoja odpowiedź. Dzięki

1 użytkowników online, w tym zalogowanych: 0, gości: 1