【问题标题】:SQL/HSQLDB query and sub-query in Aggregate Function聚合函数中的 SQL/HSQLDB 查询和子查询
【发布时间】:2014-04-25 08:06:38
【问题描述】:

我的数据库看起来像这样(非常简单),名为“RideDate”: BikeDate 自行车里程 我希望实现的是一个查询,即每个月是所有年份的总和(Sum),所有年份的平均值(Avg)以及特定年份的总和 (WHERE YEAR("Date")= '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 月份的总和)

最后一列不会按“按月分组”排序,而是给出全年的总和。

如何编写子查询以对选定年份的主查询的迭代月份求和?有没有其他方法可以解决这个问题?

【问题讨论】:

  • 运行您编写的查询时遇到哪个错误?

标签: sql hsqldb


【解决方案1】:

你可以试试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

【讨论】:

    猜你喜欢
    • 2011-09-27
    • 2013-04-25
    • 1970-01-01
    • 2019-06-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-10
    相关资源
    最近更新 更多