sql - SQL 语句从国家列表中的每个国家中选择前 10 个订单
问题描述
我正在尝试构建一个查询,我可以在其中获取国家列表中每个国家的前 10 个订单。因此,如果我的国家/地区列表是 3 长,那么我应该从一个国家/地区获得不超过 30 个结果,并且不超过 10 个。
假设我正在查询的表具有必要的字段。
我的国家列表可以随着查询而改变。因此,有时我可能只对(“中国”、“日本”、“美国”)感兴趣,但在另一点(“中国”、“日本”、“德国”)。
解决方案
在 Teradata 中,您将使用以下qualify
子句:
select o.*
from orders o
qualify row_number() over (partition by country order by total desc) <= 10;
推荐阅读
- java - 这个类如何在鼠标按下后自动重绘?
- c# - 如何在 C# 中使用 Window Defender 扫描上传文档的病毒
- maven - Maven - 使用构建配置文件排除特定依赖项
- java - 自动连线不起作用,但手动创建对象有效
- google-bigquery - BigQuery 中的 ISO 年周 (YYYYww) 日期格式
- python - 从列表中删除某些数据框,条件是列标题。不重复列表
- xcode - 我的存档构建失败并出现错误“没有这样的模块组合”
- javascript - 如何处理这个 HTML 表格设计
- vue.js - Vuex 操作:解决嵌套承诺的最佳方法
- .net-core - 为什么 ArtifactoryNuget@1 管道任务针对旧的 Microsoft.NetCore.App 版本进行恢复?