我是论坛和 SQL 的新手,非常感谢所有信息。我找不到适合我的解决方案,所以我想在这里试一试。在雪花中经营。我的数据集看起来像这样(为麻烦的格式道歉):
PO | DIV | PROD | QTY | CUST
123 | 1 | x | 10 | Sonic
234 | 1 | x | 9 | Sonic
345 | 1 | x | 8 | McD
456 | 1 | x | 10 | Wendy's
我想按 DIV、PROD 和 CUST 对 QTY 求和。一旦我有了这些总和的数量,我想按 DIV 和 PROD 取最大的 SUM(QTY),但保留 CUST 字段。因此,上面的答案如下所示:
1 | x | 19| Sonic
请注意,我显然有一个更大的数据库,因此我将列出所有独特的产品/部门组合以及 max(sum()),大约 600K 行。
我在这里的代码使我达到了 sum(QTY) 但现在我需要在保留 CUST 字段的同时拉出具有最大 sum(QTY) 的行。你能帮我吗?我发现了一些关于 best-n-per-group 的信息,但不确定这是否是我应该使用的以及如何使用
SELECT DIV, PROD, CUST, SUM(QTY) as QTY
from table
GROUP BY
DIV,
PROD,
CUST
Order by
DIV,
PROD
编辑:Jay 的 CTE 方法对我有用,但我忘了提到我想用它创建一个表。CREATE OR REPLACE TABLE 不适用于 CTE。使用 CTE 方法或其他方法创建表的任何方法?
谢谢!