聚合函数中的SQL / HSQLDB查询和子查询

时间:2014-04-25 08:06:38

标签: sql hsqldb

我的数据库看起来像这样(非常简单),被称为" 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的月份总和)

最后一列不会按月份按'组进行整理。并给出全年的总和。

如何编写子查询以在所选年份的主查询的迭代月份之间求和?还有另一种解决方法吗?

1 个答案:

答案 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