我有下表:
表
+-----------+--------+--------------+
| tableA_id | code | Department |
+-----------+--------+--------------+
| 1 | code A | Science 1 |
| 2 | code B | Science 1 |
| 3 | code A | Science 2 |
| 4 | code C | Science 1 |
| 5 | code B | Science 2 |
| 6 | code A | Science 3 |
| 7 | code C | Science 2 |
| 8 | code B | Science 3 |
| 9 | code A | Science 4 |
| 10 | code C | Science 3 |
| 11 | code B | Science 4 |
+-----------+--------+--------------+
我想转换它使用sql查询在下面的格式
+--------------+
| Department |
+--------------+
| Code A |
+--------------+
| Science 1 |
| Science 2 |
| Science 3 |
| Science 4 |
+--------------+
| Code B |
+--------------+
| Science 1 |
| Science 2 |
| Science 3 |
| Science 4 |
+--------------+
| Code C |
+--------------+
| Science 1 |
| Science 2 |
| Science 3 |
+--------------+
基本上,我希望它按代码分组,但需要在每个组的顶部显示代码,并在列中显示值,而不是动态固定的。
2条答案
按热度按时间rks48beu1#
这可以通过分组汇总来实现。
初始解决方案
单一结果查询:
运行此查询以了解我是如何找到上一个解决方案的:
扩展解决方案
处理2个额外的列(基于注解中的其他输入)。
由于分组的原因,您需要使用聚合函数(如
min
函数(此处使用)来选择值。这将提供:
jxct1oxe2#
看起来像是表示层任务。一种方法是使用
cursor
选择不同的代码,并按代码顺序将记录添加到最终表中。请在这里找到演示(包括额外的专栏)。