【发布时间】:2019-12-20 18:17:39
【问题描述】:
我有一个 php 应用程序,它有锻炼表,我在其中存储基于活动的日常用户锻炼数据(例如:跑步、步行、骑自行车)。在月底,我必须创建一个排行榜,以根据最高锻炼点生成排名。
SELECT total_distance, user_id,date_created
FROM workouts
WHERE date_created LIKE '%2019-11%' AND activity_type='Run'.
通过上述查询,我得到如下所述的输出
我已经通过在查询中使用 GROUP BY user_id 优化了查询。
SELECT SUM(total_distance) as points, user_id,date_created
FROM workouts
WHERE date_created LIKE '%2019-11%' AND activity_type='Run'
GROUP BY user_id
我希望我的最终输出如第二张图片所示以及作为新列的排名。 如何为此编写查询。我做不到..
【问题讨论】:
-
大概,
LIKE '2019-11%'也可以工作,并且具有可以使用索引的优点(尽管范围查询会更快)