sql - Postgresql - 按 DESC 排序不起作用
问题描述
我有一个这样的 sql 查询。
select
SUM(balance.amount) as amount
from "provider_games"
left join "balance" on "balance"."game_id" = "provider_games"."game_id"
group by "provider_games"."game_id"
order by "amount" desc limit 5
我的余额表包括:
game_id | amount
245 - 146.00
244 - 5013.00
当我进行“order by desc”时,结果不正确:
amount
null
null
null
null
null
解决方案
order by ... desc
将 NULL 值排序到顶部。当您将结果限制为 5 行时,您只会看到 NULL 值。
解决这个问题的一种方法是让 Postgres 将 NULL 值排序到最后:
order by amount desc nulls last
limit 5
由于您显然对 NULL 值不感兴趣,因此您也可以将外部联接更改为内部联接,那么您很可能根本不会获得任何 NULL 值。
推荐阅读
- graphql - Keystone.JS API 用户认证(不是 Admin-UI)
- android - 如何将 Workmanager 任务完成通知服务?
- sql - 将表达式转换为数据类型日期时间的算术溢出错误
- selenium - 如何在 Cucumber+Selenium+Java 中实现 ITestListener
- amazon-web-services - 禁用 Cloudfront 以缓存特定路径
- firebase - 检测身份验证凭据是否已在 Firebase 中链接
- css - 卡内的 TableCell 文本在 React 中溢出
- azure-active-directory - 在 Azure AD B2C 中使用自定义策略设置电话注册和登录
- javascript - 使用 NPM 导入 D3?
- django - Django admin - 在内联中过滤外键