我尝试了1407.Top Travellers。但是我在下面的Oracle查询中挣扎,'Runtime error'
。有点太累了,不知道为什么。知道我哪里出错了吗?最近对SQL已经生疏了。
select name as name,
case when rides.distance is null then 0 else sum(rides.distance) end as travelled_distance
from users
left join rides
on users.id = rides.user_id
group by rides.users_id
order by travelled_distance desc, name;
2条答案
按热度按时间cgvd09ve1#
正如评论所说的,则是另一种说法:
或者,更简单的方法是使用
nvl
函数:不过,还有一些反对意见:
name
列执行此操作。它 * 可能 * 属于users
表,但我们无法确定,因为我们没有您的数据模型,也无法访问您的数据库group by
子句应包含未聚合的列。在您的查询中,该列为name
列。您 * 可以 * 将rides.users_id
放入该子句中,但必须将name
放入其中1cosmwyk2#
下面的解决方案是有效的。感谢leetcode上的一个讨论帖子,我可以弄清楚这个问题: