【发布时间】:2019-05-08 22:22:20
【问题描述】:
我有table_1 有以下数据:
| STORE | Add | dis | Cnt |
+-------+-----+-----+-----+
| 101 | X | abc | 2 |
| 101 | X | null| 3 |
| 101 | X |pqrd | 4 |
| 101 | X | null| 1 |
| 102 | y | null| 1 |
| 102 | y | xyz | 3 |
| 102 | y | pqr | 4 |
| 102 | y | null| 2 |
我尝试构建一个查询以从 table_1 获取数据,其中 [dis] 不为空且 [cnt] 应为最小值。所以我的结果应该如下所示:
| STORE | Add | dis | Cnt |
+-------+-----+-----+-----+
| 101 | X | abc | 2 |
| 102 | y | xyz | 3 |
我的查询如下所示:
SELECT store,add,dis,min(TMPLT_PRIORITY_NMBR)
FROM table_1 group by store,add;
但我收到以下错误:
选择列表中的“dis”列无效,因为它既不包含在聚合函数中,也不包含在 GROUP BY 子句中。
如果我在 GROUP BY 子句中使用 [dis],我会得到错误的结果,并且给出 max(dis) 或 min(dis) 也会提供错误的结果。
这个问题的解决方案是什么?
【问题讨论】:
标签: sql sql-server tsql select