我正在使用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
请有人帮帮我
答案 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;
<强>输出:强>
以下是MySQL中演示的链接。与您的数据库不同,但UNION
和CASE
的行为在H2中与在MySQL中的行为相同。