获取图像排名
Get images rank
我正在使用下面的代码从我的 table 中获取图像排名。到目前为止一切正常,但问题是,如果 2 个或更多图像具有相似的点,它们将获得相似的排名。我想要的是如果 2 张图像有相似点,我想根据这些图像提交的日期对它们进行排名。
SELECT uo.*,
( SELECT COUNT(DISTINCT ui.total_points)
FROM photo_list ui
WHERE ui.total_points>= uo.total_points
) AS rank
FROM photo_list uo
这是我的 table 的样子
id | photo_id | total_points
1 432cfc 1
2 fsd324 123
3 gd43ds 5
您可以在比较中添加更多条件:
SELECT uo.*,
(SELECT COUNT(*)
FROM photo_list ui
WHERE ui.total_points > uo.total_points OR
ui.total_points = uo.total_points AND ui.submitted_date >= uo.submitted_date
) AS rank
FROM photo_list uo
我不确定提交日期的排名顺序是什么,但是 >=
或 <=
应该可以。请注意,我还更改了 COUNT()
。如果您包括数据的其他特征,则只计算提交的分数是没有意义的。
我正在使用下面的代码从我的 table 中获取图像排名。到目前为止一切正常,但问题是,如果 2 个或更多图像具有相似的点,它们将获得相似的排名。我想要的是如果 2 张图像有相似点,我想根据这些图像提交的日期对它们进行排名。
SELECT uo.*,
( SELECT COUNT(DISTINCT ui.total_points)
FROM photo_list ui
WHERE ui.total_points>= uo.total_points
) AS rank
FROM photo_list uo
这是我的 table 的样子
id | photo_id | total_points
1 432cfc 1
2 fsd324 123
3 gd43ds 5
您可以在比较中添加更多条件:
SELECT uo.*,
(SELECT COUNT(*)
FROM photo_list ui
WHERE ui.total_points > uo.total_points OR
ui.total_points = uo.total_points AND ui.submitted_date >= uo.submitted_date
) AS rank
FROM photo_list uo
我不确定提交日期的排名顺序是什么,但是 >=
或 <=
应该可以。请注意,我还更改了 COUNT()
。如果您包括数据的其他特征,则只计算提交的分数是没有意义的。