我需要SQL帮助。我有一个像这样的sqlite表;
CREATE TABLE mytable (datetime DATE, type TEXT, amount REAL)
我需要一个查询来总结每种类型和年 - 月的数量(因为你可以看到年份也被提取,因为数据可以跨越几年)。我已经到了中途,但我对SQL有点生气。
sqlite> SELECT strftime('%Y',datetime) AS year, strftime('%m',datetime) AS month, type, amount FROM mytable ;
2009|06|Type1|-1000.0
2009|06|Type1|-100.0
2009|06|Type2|-100.0
2009|07|Type1|-214.91
2009|07|Type2|-485.0
我在上面的查询中尝试过SUM和GROUP BY的多种组合,但是没有一种能够满足我的需求。我想要的是一个结果:
2009|06|Type1|-1100.0
2009|06|Type2|-100.0
2009|07|Type1|-214.91
2009|07|Type2|-485.0
是的,类型应该是外键,我简化了一些内容,以便更容易提出问题:)
答案 0 :(得分:15)
SELECT strftime('%Y',datetime) AS year,
strftime('%m',datetime) AS month,
type,
Sum(amount) As Amount
FROM mytable
Group By 1, 2, 3
某些数据库不支持逐个索引,因此您必须这样做。
SELECT strftime('%Y',datetime) AS year,
strftime('%m',datetime) AS month,
type,
Sum(amount) As Amount
FROM mytable
Group By strftime('%Y',datetime),
strftime('%m',datetime),
type