SQL查询如何将相同的结果以增量键顺序单独分组
我有A列和B列。我需要按照以下方式对A列进行分组:根据B列中的值将2和3、5和6、8和9以及10组合在一起。A列始终为增量1至10。我在SQL中无法找到将5和6以及8和9和10分别分组的方法,因为它们具有相同的B值(1.4)。我想将增量A值分组在一起(5,6,8,9,10由于缺少7而不是增量)。谢谢你的帮助。谢谢SQL查询如何将相同的结果以增量键顺序单独分组,sql,tsql,group-by,gaps-and-islands,dense-rank,Sql,Tsql,Group By,Gaps And Islands,Dense Rank,我有A列和B列。我需要按照以下方式对A列进行分组:根据B列中的值将2和3、5和6、8和9以及10组合在一起。A列始终为增量1至10。我在SQL中无法找到将5和6以及8和9和10分别分组的方法,因为它们具有相同的B值(1.4)。我想将增量A值分组在一起(5,6,8,9,10由于缺少7而不是增量)。谢谢你的帮助。谢谢 A B 1 1.0 2 1.1 3 1.1 4 1.3 5 1.4 6 1.4 7 1.45 8 1.4 9
A B
1 1.0
2 1.1
3 1.1
4 1.3
5 1.4
6 1.4
7 1.45
8 1.4
9 1.4
10 1.4
这是一个类型问题,因为您不想只按B
分组,您只想按相对于a
的连续B
分组
雷克斯测试仪:
返回:
+------+------+------+-----+
| minA | maxA | B | rnk |
+------+------+------+-----+
| 1 | 1 | 1.00 | 1 |
| 2 | 3 | 1.10 | 2 |
| 4 | 4 | 1.30 | 3 |
| 5 | 6 | 1.40 | 4 |
| 7 | 7 | 1.45 | 5 |
| 8 | 10 | 1.40 | 6 |
+------+------+------+-----+
转储到带有分组指示器的临时表中
插入到#诱惑(可乐、可乐、GroupCol)
选择一个,
B
案例
当A=1时,则为1
当A=2或A=3时,则为2
当A=4时,则为4
当A=5或A=6时,则为5
当A=7时,则为6
当A=8或A=9或A=10时,则为7
否则无效
以GroupCol结尾
从原始表格
中,请显示预期输出。A B 1.0 2-3 1.1 4 1.3 5-6 1.4 7 1.45 8-10 1。4@antbithia添加了maxA
您的解决方案假设我们事先知道这些值。但是,应将其编码为适用于任何数据集。谢谢
+------+------+------+-----+
| minA | maxA | B | rnk |
+------+------+------+-----+
| 1 | 1 | 1.00 | 1 |
| 2 | 3 | 1.10 | 2 |
| 4 | 4 | 1.30 | 3 |
| 5 | 6 | 1.40 | 4 |
| 7 | 7 | 1.45 | 5 |
| 8 | 10 | 1.40 | 6 |
+------+------+------+-----+