问题描述
我们希望汇总中的小计显示在每个相应类别的开头/结尾。以下是我们尝试过的对下表的查询。但是,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 (将#修改为@)