duanguan1573 2015-01-15 23:49
浏览 30
已采纳

获取图像排名

I am using the following code below to get the image rank from my table. So far everything works great, but the problem is, if 2 or more images has similar points, they get similar ranks. What I want is if 2 images has similar points, I want to rank them based on the date these images where submitted.

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

Here is what my table looks like

id  | photo_id | total_points
1      432cfc        1
2      fsd324       123
3      gd43ds        5
  • 写回答

1条回答 默认 最新

  • dt97868 2015-01-15 23:57
    关注

    You can add more conditions to the comparison:

    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
    

    I'm not sure what order you want the ranking in for the submitted date, but either >= or <= should work. Note that I also changed the COUNT(). Counting just the points submitted would not make sense if you are including other features of the data.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 c语言怎么用printf(“\b \b”)与getch()实现黑框里写入与删除?
  • ¥20 怎么用dlib库的算法识别小麦病虫害
  • ¥15 华为ensp模拟器中S5700交换机在配置过程中老是反复重启
  • ¥15 java写代码遇到问题,求帮助
  • ¥15 uniapp uview http 如何实现统一的请求异常信息提示?
  • ¥15 有了解d3和topogram.js库的吗?有偿请教
  • ¥100 任意维数的K均值聚类
  • ¥15 stamps做sbas-insar,时序沉降图怎么画
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看
  • ¥15 关于#Java#的问题,如何解决?