我的数据库看起来像这样(非常简单),被称为" RideDate": BikeDate自行车里程 我希望实现的是一个查询,每个月都是所有年份的总和(总和),所有年份的平均值(平均值),以及特定年份的总数 (年份("日期")=' 2014")。 (由于电力波动,我没有在我面前准确的代码,把我推到iPad上(大风和潮湿/大雪)。
我的尝试是这样的:
SElECT MONTH("BikeDate") AS "Month", SUM("Miles") AS "SMiles", AVG("AMiles") AS "Average",
(SELECT MONTH("BikeDate") SUM("Miles") WHERE YEAR("BikeDate") = '2014') AS "2014"
FROM "RideDate"
GROUP BY MONTH("BikeDate")
ORDER BY MONTH("BikeDate") ASC
结果应该是: (月)(所有年份的月份总和)(所有年份的平均月份)(' 14的月份总和)
最后一列不会按月份按'组进行整理。并给出全年的总和。
如何编写子查询以在所选年份的主查询的迭代月份之间求和?还有另一种解决方法吗?
答案 0 :(得分:0)
您可以使用CROSS JOIN
SELECT * FROM
(
(SELECT MONTH("BikeDate") AS "Month", SUM("Miles") AS "SMiles", AVG("AMiles") AS "Average",
FROM "RideDate"
GROUP BY MONTH("BikeDate"))a
CROSS JOIN
(SELECT SUM("Miles") as "YearSum"
FROM "RideDate"
WHERE YEAR("BikeDate") = '2014')b
) results