sql - 将表插入主查询表的语法
问题描述
为我(可能)滥用措辞而道歉,但我在编写查询时遇到了一些问题。
本质上,我正在生成一个表,其中每个购物者一行,每个杂货项目一列,我们在其中找到他们购买所述项目的访问百分比。我正在从子查询生成此表,其输出如下所示:
Shopper | Visit | Butter | Milk | Eggs
Bill | A | 1 | 0 | 1
Bill | B | 0 | 1 | 1
John | C | 0 | 1 | 0
John | D | 1 | 1 | 1
因此,我的主要查询显示以下内容:
Shopper | Butter % | Milk % | Eggs %
Bill | 50% | 50% | 100%
John | 50% | 100% | 50%
我实质上是将标志的总和除以总访问量的总和,按shopper分组。
但是,我想在所有购物者的百分比底部添加一行,这样我的最终表格将是:
Shopper | Butter % | Milk % | Eggs %
Bill | 50% | 50% | 100%
John | 50% | 100% | 50%
All | 50% | 75% | 75%
我最初的想法是为此创建一个单独的子查询,在其中我模仿获取百分比的逻辑(但将“分组依据”留空以获取所有购物者的百分比)。我在将这一行附加到我的决赛桌底部时遇到了一些麻烦。
我确实找到了 INSERT 语句,并且知道有几种不同的方法可以包含它,但我不确定在我的主查询的上下文中该语法会是什么样子。
可能有一种更直接的方法来解释这一点,但如果我的一般格式是
WITH <Subquery creation>,
<Subquery 2 creation>
SELECT <create percent columns>
FROM <Subquery table>
WHERE ...
GROUP BY ...
我无法确定这样的 INSERT 语句适合的位置。
也完全有可能有一种更简单的方法来做到这一点,我也对此持开放态度。任何建议将不胜感激!
解决方案
您可能可以使用grouping sets
. 在你的group by
,改变:
group by shopper
到:
group by grouping sets ( (shopper), () )
此语法在.group by
推荐阅读
- node.js - API 路由适用于邮递员,但不适用于客户端应用程序
- javascript - Webpack“找不到模块:错误:无法解析'./src/'”
- python - django gunicorn 在发送文件时卡住了
- php - 如果我同时上传两者,aws ec2 目录是否 html 优先于 php?
- amazon-web-services - Android Studio,DynamoDB Query也使用排序键
- c# - 如何将十进制数划分为与原始数字相加的四舍五入部分?
- python - 房间和物品字典问题,基于 Python 文本的游戏
- pandas - 如何在 Pandas DataFrame 中格式化单列?
- python - Apscheduler 时钟进程每次都崩溃
- pine-script - 将具有不同时间范围的新条件添加到当前脚本