我想要一个查询,从我的表中选择总卡路里和会员ID,并按总卡路里的降序排序。我要求将前8个值打印为排名列表,但是我设计我的程序的方式是每次添加新记录时它会调用最高的总卡路里值,然后将新的计算值添加到它并存储作为新的总卡路里值。
这个系统在我使用此查询时会产生问题:
SELECT TotalCalories, MemberID
FROM TrainingInfo
ORDER by TotalCalories desc
LIMIT 0,7
如果成员可能有两个记录都在我不想要的排名列表中,它不会获取正确数量的值,因为我在python中使用SQL
我的课程,我可以摆脱重复的值,但它不会给我8级。我尝试使用DISTINCT
,但我似乎无法使其发挥作用,MemberID
将是DISTINCT
值。
如果有人可以帮我解决那个很棒的问题。
答案 0 :(得分:1)
您是说同一会员可能有多条记录?如果是这样,那么你需要总计总卡路里,并按成员分组:
select Memberid, sum(TotalCalories)
from TrainingInfo
group by MemberID
order by sum(TotalCalories) desc
limit 0,7