【发布时间】:2022-01-11 19:26:12
【问题描述】:
第一次在 stackoverflow 上发帖,SQL 新手(以及一般的任何代码)希望对我的 group by query 提供一些建议。根据下面的示例数据集,我希望对 ID/Name 进行分组并返回每个人的最小销售额。我遇到的困难是我还想返回与最低销售业绩相关的 REGION 和 QTR 信息。
| ID | NAME | REGION | SALES | QTR. |
|---|---|---|---|---|
| 1 | Luke | NORTH | 45 | 1 |
| 2 | Danny | WEST | 67 | 2 |
| 3 | Elle | NORTH | 73 | 1 |
| 1 | Luke | WEST | 32 | 4 |
| 2 | Danny | EAST | 22 | 3 |
| 2 | Danny | EAST | 18 | 2 |
所以基本上分组到如下表
| ID | NAME | REGION | MIN SALES | QTR. |
|---|---|---|---|---|
| 1 | Luke | WEST | 32 | 4 |
| 2 | Danny | EAST | 18 | 2 |
| 3 | Elle | NORTH | 73 | 1 |
如果我将其他列引入组中,它会为每个人创建多行,如果我将它们排除在外,我会丢失相关数据。
任何人都可以帮忙,从网上看,我可能不得不自己重新加入表格,虽然我不知道该怎么做。
谢谢
汤姆
【问题讨论】:
-
这能回答你的问题吗? SQL: How to find min value per group in sql?
-
如果某人在 2 个不同时期的销售额相同且最低,那么预期的结果是什么?
-
您需要添加您使用的DBMS和版本
-
@jarlh 很好,我没有考虑过,我需要进一步考虑 - 我认为这意味着在这些情况下丢失区域/QTR 信息以保留每人 1 行跨度>
标签: sql group-by min self-join