H2 数据库的汇总功能

Int*_*ode 3 sql h2

我正在使用 H2 嵌入式数据库进行桌面应用程序开发,H2 数据库具有与 SQL 函数相同的功能。但我被困在一个地方使用ROLLUPH2 数据库中的功能。ROLLUP或者H2 数据库中有其他替代品吗?

我的查询需求是:

我想在 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
Run Code Online (Sandbox Code Playgroud)

请有人帮助我

Tim*_*sen 5

我在 H2 文档中找不到任何提及支持ROLLUPwithGROUP 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;
Run Code Online (Sandbox Code Playgroud)

输出:

在此输入图像描述

这是 MySQL 演示的链接。UNION与您的数据库不同,但 H2 中和的行为CASE应该与 MySQL 中相同。

雷克斯特