首页 > 解决方案 > SQL 语句从国家列表中的每个国家中选择前 10 个订单

问题描述

我正在尝试构建一个查询,我可以在其中获取国家列表中每个国家的前 10 个订单。因此,如果我的国家/地区列表是 3 长,那么我应该从一个国家/地区获得不超过 30 个结果,并且不超过 10 个。

假设我正在查询的表具有必要的字段。

我的国家列表可以随着查询而改变。因此,有时我可能只对(“中国”、“日本”、“美国”)感兴趣,但在另一点(“中国”、“日本”、“德国”)。

标签: sqlteradata

解决方案


在 Teradata 中,您将使用以下qualify子句:

select o.*
from orders o
qualify row_number() over (partition by country order by total desc) <= 10;

推荐阅读