먼저 MySQL에 신기한 존재라는 것을 모두에게 경고하겠습니다. 또한 아래 예제 쿼리를 테스트하지 않았으므로 완벽하지 않을 수도 있습니다.MySQL - 행의 행과 평균을 얻으십시오.
어쨌든, 나는 이름, 카테고리 및 점수가있는 항목 테이블을 가지고 있습니다. 12 시간마다 최상위 항목을 가져와 사용하고 제거합니다.
지금까지 나는 단순히이 가진 유일한 문제는 어떤 종류가 편견이며, 일반적으로 높은 점수를 가지고있다
SELECT * FROM items_table ORDER BY score DESC LIMIT 1
으로 맨 위 항목을 잡아 왔습니다. 나는 스코어별로 정렬하는 대신 평균 스코어로 점수를 나눔으로써 이것을 해결하고 싶습니다. 예 :
ORDER BY score/(GREATEST(5,averageScore))
나는 averageScore를 찾는 가장 좋은 방법을 찾으려고합니다. 분명히 내가 그에게 averageScore 열을 추가하고
SELECT * FROM items_table, categories_table WHERE items_table.category = categories_table.category ORDER BY items_table.score/(GREATEST(5,categories_table.averageScore)) DESC LIMIT 1
처럼 뭔가로 업데이트 유지하고이를 검색 할 수 cronjob에를 실행할 수 있도록 나는 범주에 대한 다른 테이블을 가지고 있지만이 지저분한 느낌. 내가 바로 하나 개의 쿼리의 평균을 검색 할 수있는 방법이 있다면 내가 궁금하네요 것은
SELECT AVG(score) FROM items_table GROUP BY category
같은 것을 사용하여 모든 평균을 찾을 수 있습니다 알고 있습니다.
감사합니다,
YM
"나는 MySQL을 가진 신인의 일이야"를 당신이 신인 무엇을 의미합니까? – Imran
@imran : https://www.google.co.uk/search?q=define%3Arookie – eggyal
약 3 년 동안 사용해 왔지만 6 개월 전부터 정규화 된 데이터베이스에 대해서만 배웠습니다. . –