gpt4 book ai didi

mysql - SQL 查询 - 数据透视分组或任何概念来获取我的结果表

转载 作者:行者123 更新时间:2023-11-29 05:59:12 25 4
gpt4 key购买 nike

我有一个名为#MyTable 的表。

我的表格

    ID  Column Value
1 x1_abc 11
1 x1_def 23
1 x2_abc 9
1 x2_def 10
2 x1_abc 1
2 x1_def 55
2 x2_abc 42
2 x2_def 44
3 x1_abc 32
3 x1_def 33
3 x2_def 88
3 x2_def 90

我的输出应该是这样的

    ID  Column  x1  x2
1 abc 11 9
1 def 23 10
2 abc 1 42
2 def 55 44
3 abc 32 88
3 def 33 90

不确定这在 SQL 查询中是否可行。我尝试使用 SQL Pivot 但没有锻炼。请给出编写查询以获得此结果的建议。

最佳答案

看起来您可以执行 PIVOT 来创建您要查找的表,请参见下文。

SELECT ID, Column1, ISNULL([x1],0) AS 'x1', ISNULL([x2],0) AS 'x2'
FROM

(SELECT ID, RIGHT(Column1,3) AS Column1, LEFT(Column1,2) AS 'x', Value
FROM #start) AS d

PIVOT
(SUM(Value) FOR x IN ([x1],[x2])
) AS piv

我创建了一个临时表用于测试它并且它有效。请参阅下面的临时表。

 CREATE TABLE #start ( ID int, Column1 nvarchar(50), Value int);


INSERT INTO #start
VALUES (1, 'x1_abc', 11),
(1, 'x1_def', 23),
(1, 'x2_abc', 9),
(1, 'x2_def', 10),
(2, 'x1_abc', 1),
(2, 'x1_def', 55),
(2, 'x2_abc', 42),
(2, 'x2_def', 44),
(3, 'x1_abc', 32),
(3, 'x1_def', 33),
(3, 'x2_def', 88),
(3, 'x2_def', 90)

这是我使用 PIOVT 收到的结果:

ID  Column1 x1  x2
1 abc 11 9
2 abc 1 42
3 abc 32 0
1 def 23 10
2 def 55 44
3 def 33 178

希望对您有所帮助。如有任何问题,请随时与我们联系。

关于mysql - SQL 查询 - 数据透视分组或任何概念来获取我的结果表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46414941/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com