1

このようなレビューの表があります

ID    REVIEWITEM  SCORE    DATE
1     Object A    5.0      6-5-2012
2     Object A    7.0      6-5-2012
3     Object A    6.0      6-7-2012
4     Object B    4.0      7-1-2012

クエリですべてのレビューを返したいのですが、レビューが同じアイテムで同じ日付の場合は、スコアの高いレビューを返すだけです。たとえば、上記の結果は次のようになります。

ID    REVIEWITEM  SCORE    DATE
2     Object A    7.0      6-5-2012
3     Object A    6.0      6-7-2012
4     Object B    4.0      7-1-2012

どうすればいいですか?

4

2 に答える 2

6

これを試してみてください。

SELECT a.*
FROM   tableName a INNER JOIN
        (
            SELECT  ReviewItem, `Date`, MAX(SCORE) maxScore
            FROM tableName
            GROUP BY ReviewItem, `Date`
        ) b ON a.reviewItem = b.reviewItem AND
                a.score = b.maxScore AND
                a.`date` = b.`date`

SQLFiddle デモ

于 2012-09-04T15:37:40.333 に答える
1
SELECT * FROM table_name ORDER BY ID DESC, SCORE DESC GROUP BY REVIEWITEM, DATE

動作するはずです

于 2012-09-04T16:09:14.407 に答える