如何解决重新排序汇总的输出,其中小计显示在相应类别的开头或结尾
我们希望汇总中的小计显示在每个相应类别的开头/结尾。以下是我们尝试过的对下表的查询。但是,Coalesce 不会用“total”替换空值,因为输出中没有显示空值或“total”,这意味着汇总不起作用。我们的假设是,某些东西与脚本的序列(与序列)不符。我们只熟悉Postgres sql。感谢您的任何建议!
表格
客户表:
| customer_id|customer_name|segment |
----------- ----------- ----------
|1 |Bob |Consumer |
|2 |Mary |Corporate |
|3 |Bill |Home Office|
|4 |Kathy |Consumer |
产品表:
|product_id |category |sub_category|product_name |
-------------- ---------- ----------- -----------------------
|FUR-ADV-10000002|furniture |furnishings |Advantus Clock Ergonomic|
|FUR-BO-10000002 |furniture |bookcases |Bush Classic Bookcase |
|TEC-bro-10000348|technology|copiers |brother copy Machine |
|TEC-EPS-10000053|technology|machines |Epson Printer Red |
|OFF-AR-10000019 |office sup|art |BIC Highlighters Blue |
|OFF-EAT-10000522|office sup|paper |Eaton Comp Printout |
订单表:
|order_id |product_id |customer_id|sales |
-------------- --------------- ---------- -----
|AE-2016-1308551|FUR-ADV-10000002|1 |82.67 |
|AE-2016-1308552|FUR-BO-10000002 |1 |101.54|
|AE-2016-1308553|TEC-bro-10000348|2 |79.28 |
|AE-2016-1308554|TEC-EPS-10000053|3 |101.23|
|AE-2016-1308555|OFF-AR-10000019 |4 |39.78 |
查询:
SELECT COALESCE(products.category,'total'),COALESCE(products.sub_category,SUM(orders.sales) AS total_sales
FROM products
INNER JOIN orders
ON products.product_id=orders.product_id,(SELECT products.category,products.sub_category,SUM (orders.sales)
FROM orders
INNER JOIN products
ON orders.product_id=products.product_id
GROUP BY
ROLLUP (1,2)) t
GROUP BY 1,2
ORDER BY 3 desc;
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。