gpt4 book ai didi

mysql - SQL 如何处理子类别

转载 作者:行者123 更新时间:2023-11-30 22:05:30 24 4
gpt4 key购买 nike

这里是新手,所以希望这不是一个太愚蠢的问题。我在 SQL 数据库中有一张实验室样本表。它包括 Sample_IDs、Test_Names、Subtest_Names 和 Results。我目前简单的SQL查询如下:

SELECT Sample, Test, Subtest, Result
FROM table
WHERE Sample = 'list of sample #s'

结果如下:

SAMPLE  TEST    SUBTEST   RESULT
XX01 Test1 Test1Sub1 1
XX02 Test1 Test1Sub1 2
XX03 Test1 Test1Sub1 3
XX03 Test2 Test2Sub1 4
XX03 Test3 Test3Sub1 5
XX03 Test3 Test3Sub2 6
XX03 Test3 Test3Sub3 7
XX03 Test4 Test4Sub1 8
XX03 Test4 Test4Sub2 9
XX03 Test4 Test4Sub3 10

但是,我正在寻找要按唯一 Sample_ID 列出的表格,并将子测试列为列。我知道我正在寻找的子测试的名称,因此我可以在查询中指定。例如,我希望上面的结果看起来像:

    Test1Sub1   Test2Sub1   Test3Sub1   Test3Sub2   Test3Sub3   Test4Sub1   Test4Sub2   Test4Sub3
XX01 1
XX02 2
XX03 3 4 5 6 7 8 9 10

有人可以帮我处理 SQL 代码吗?我做了一些搜索,但我的知识还不够具体,无法找到我正在寻找的答案。谢谢!

最佳答案

CREATE TABLE #Test
(SAMPLE VARCHAR(100), TEST VARCHAR(100), SUBTEST VARCHAR(100), RESULT INT)
INSERT INTO #TEST
VALUES
('XX01','Test1','Test1Sub1', 1 ),
('XX02','Test1','Test1Sub1', 2 ),
('XX03','Test1','Test1Sub1', 3 ),
('XX03','Test2','Test2Sub1', 4 ),
('XX03','Test3','Test3Sub1', 5 ),
('XX03','Test3','Test3Sub2', 6 ),
('XX03','Test3','Test3Sub3', 7 ),
('XX03','Test4','Test4Sub1', 8 ),
('XX03','Test4','Test4Sub2', 9 ),
('XX03','Test4','Test4Sub3', 10 )


SELECT *
FROM
(
SELECT SAMPLE,RESULT,SUBTEST
FROM #Test
) as s
PIVOT
(
MAX(RESULT)
FOR SUBTEST IN
(
Test1Sub1,
Test2Sub1,
Test3Sub1,
Test3Sub2,
Test3Sub3,
Test4Sub1,
Test4Sub2,
Test4Sub3
)
)AS pvt

enter image description here

关于mysql - SQL 如何处理子类别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41902373/

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