2014-09-23 115 views
0

比方说,我有如下表:格式化查询结果

first second 
A  1 
A  1 
A  2 
B  1 
B  2 
C  1 
C  1 

如果我运行下面的查询:

select first, second, count(second) from tbl group by first, second 

它会产生以下信息表:

first second count(second) 
A  1  2 
A  2  1 
B  1  1 
B  2  1 
C  1  2 

我该如何编写查询,以便使用第二列中的选项给出信息对于这些列是这样的数列和值:

first 1 2 
A  2 1 
B  1 1 
C  2 0 
+0

确实SQLite的有旋转功能?我知道它没有持续检查,但那是前一阵子。 – Conduit 2014-09-23 20:33:49

回答

1

您可以使用CASE

SELECT "first", 
     SUM(CASE WHEN "second" = 1 THEN 1 ELSE 0 END) AS "1", 
     SUM(CASE WHEN "second" = 2 THEN 1 ELSE 0 END) AS "2" 
FROM tbl 
GROUP BY "first" 
+0

CASE是解决方案。谢谢! – MLEV 2014-09-23 23:03:04