【发布时间】:2019-12-20 14:34:09
【问题描述】:
我正在尝试将一组在 SQL Server 中具有唯一列的行组合在一起。
目前,所有数据都被选为标准二维表,正在排序的是 Javascript,但是,由于 JSON 很大,因此对于大型列表来说非常慢。
我希望通过在服务器端转换数据集来提高前端性能,以便更快地渲染 DOM。
我认为这可以通过 SQL group by 函数的某种组合来实现,并且可能在 SQL Server 的较新版本中合并一些较新的函数,例如 openjson。
示例表
| a | b | c | uniqueColumn |
|---|---|---|---------------|
| 1 | 2 | 3 | string1 |
| 1 | 2 | 3 | string2 |
| 4 | 5 | 6 | string3 |
示例选择
select
uniqueColumn
group by
a,
b,
c
期望的输出
| uniqueSelection1 | uniqueSelection2 |
|------------------|------------------|
| string1 | string3 |
| string2 | |
当数据集的一部分是唯一的时,如何将每个唯一组合 a-b-c 分组到自己的集合中?
【问题讨论】:
-
这个问题不是很清楚。您的示例查询无效,因为您仅按返回的 4 列中的 3 列进行分组,并且第 4 列不是聚合。但所需的输出是完全不清晰的地方。请提供minimal reproducible example,以便其他人可以帮助您。
-
@SeanLange 这就是我遇到的问题。我在想也许我可以做一个while循环并在最后选择聚合表?
-
这是否意味着您要生成 JSON 输出?
-
@Zhorov JSON 只是唯一的字符串。我将它们列为 JSON 以帮助解释我为什么要这样做。让我更新问题...
-
此外,“将每个唯一的 a-b-c 选择拆分到自己的表中”是什么意思? “将它们加入主表”是什么意思?这里使用了很多没有任何定义的术语。
标签: json sql-server group-by sql-server-2016