teradata sql助手在限制时给我一个错误?

我是Teradata的新手,我很难限制结果。我想做的是获取最大数量。

现在,这只是给我一个错误,称为SELECT Failed. 3706:。有人可以让我知道我在做什么错吗?

我还有一个问题,我有一个名为onsite = 'Y'的过滤器。谁能告诉我为什么我也必须按onsite分组。否则,我的查询将不会运行。非常感谢你的帮助。

SELECT
      short_sku,Count(item_full_sku)
FROM category 
GROUP BY short_sku,onsite
HAVING onsite = 'Y'  
ORDER BY Count(full_sku) DESC LIMIT 1
ljj007969 回答:teradata sql助手在限制时给我一个错误?

您要使用TOP函数:

SELECT TOP 1
      short_sku,Count(item_full_sku)
FROM category 
WHERE onsite = 'Y'  
GROUP BY short_sku
ORDER BY Count(full_sku) DESC
;

如果要过滤出onsite='Y'所在的行,应将其移至WHERE子句。 HAVING子句用于过滤出聚合。

,

另一种解决方案采用了分析功能,该功能比TOP用途更广泛,例如您可以通过添加PARTITION BY来获得每个组的TOP n:

SELECT
      short_sku,Count(item_full_sku)
FROM category 
WHERE onsite = 'Y'  
GROUP BY short_sku,onsite
QUALIFY row_number() over (ORDER BY Count(full_sku) DESC) = 1
本文链接:https://www.f2er.com/3093879.html

大家都在问