2016-05-16 38 views
-1

我的数据:如何将同一列中的数据放入单独的列中?

trial name quantity 
1  sam 1 
1  mary 9 
2  bill 5 
2  mary 2 

希望的输出:

name 1 2 
sam 1 0 
mary 9 2 
bill 0 5 

的“1”,在所希望的输出的顶行表示从数据中的第一试验中,“2”表示第二次试验。萨姆不是第二次审判的一部分,比尔也不是第一次审判的一部分(我们可以从数据中看到这一点)。萨姆和玛丽是第一次审判的一部分,数量为1,9。玛丽和比尔是第二次审判的一部分,数量为2,5。

假设大量试验(100+),我想要什么查询用来获得我想要的输出?我认为GROUP_CONCAT是我想要的,但这对于0数据似乎并不适用。

+0

真糊涂有人能怎么想这个关闭,由于“不清楚你问什么” - 这是与例子清透。 – theanine

回答

2

使用条件汇总:

SELECT 
    name, 
    MAX(CASE WHEN trial = 1 THEN quantity ELSE 0 END) AS '1', 
    MAX(CASE WHEN trial = 2 THEN quantity ELSE 0 END) AS '2' 
FROM Tbl 
GROUP BY name 

ONLINE DEMO

+0

我有一个非常大的尝试 - 有没有另一种方法来做到这一点? – theanine

+0

是的,你可以动态地做到这一点。我不太熟悉sqllite语法。 –

相关问题