首页 > 解决方案 > SQLITE 组合选择结果集

问题描述

我有一张这样的桌子:

|-----------------------------|
|someText | Date | someInteger|
|-----------------------------|

我想要的是选择这样的查询:

|-----------------------------------|
|someText | Jan | Feb | March | ... |
|-----------------------------------|

基本上我想对每个月按 someText 分组的所有 someInteger 求和,也就是

Select Sum(someInteger) From TABLE
Where Date = [month]
GroupBy someText

...然后,如果可能的话,我想将所有 12 个查询合并到一个结果表中,以便于使用并可能进行一些优化。

标签: sqlsqlite

解决方案


使用条件聚合(假设所有日期都在同一年):

select 
  someText,
  sum(case when strftime('%m', date) = '01' then someInteger end) Jan,
  sum(case when strftime('%m', date) = '02' then someInteger end) Feb,
  sum(case when strftime('%m', date) = '03' then someInteger end) Mar,
  ...................................................................
from tablename
group by someText

请参阅演示


推荐阅读