H2数据库的汇总函数

时间:2017-05-01 06:42:41

标签: sql h2

我正在使用H2 Embeded数据库进行桌面应用程序开发,H2数据库具有与SQL Function相同的功能。但我被困在一个地方在H2数据库中使用ROLLUP功能。或者在H2数据库中是否有ROLLUP的其他替换。

我的查询需求是:

我想在H2 DATBASE

中显示我的数据
  Customer    Product       Price 
  -------------------------------
  Suryam      Shampo        100
              Rubber        150
              Glass         250
              Total         500----->Total
  Raghu       Bottel        60  
              Biscuit       180
              Total         240----->Total
              Grand Total   740----->Grand Total

请有人帮帮我

1 个答案:

答案 0 :(得分:3)

我在H2文档中找不到任何提及ROLLUP GROUP BY查询支持的内容。好消息是,您可以使用GROUP BY以及一系列联合来模拟此功能。

SELECT Customer, Product, Price
FROM yourTable
UNION ALL
SELECT Customer, 'Total', SUM(Price)
FROM yourTable
GROUP BY Customer
UNION ALL
SELECT '', 'Grand Total', SUM(Price)
FROM yourTable
ORDER BY CASE WHEN Customer = '' THEN 1 ELSE 0 END,
         Customer,
         CASE WHEN Product = 'Total' THEN 1 ELSE 0 END,
         Product;

<强>输出:

enter image description here

以下是MySQL中演示的链接。与您的数据库不同,但UNIONCASE的行为在H2中与在MySQL中的行为相同。

Rextester