python - 聚合函数错误。下面列出的详细信息
问题描述
我正在编写一个 SQL 查询以从 northwind.orders 创建一个名为 orders_years 的新表,显示 1996 年、1997 年和 1998 年每个(不同)客户下的订单数量。我还按 customer_id 对结果进行分组并排序它们由customer_id,在运行下面的代码时,它给了我一个错误,说FROM LINE 2中的函数中不允许使用聚合函数:SUM
-- 创建新表orders_years:
SELECT customer_id FROM northwind.orders,
SUM (CASE
WHEN EXTRACT(YEAR FROM order_date) = 1996 THEN 1 ELSE 0
END) AS orders_96,
SUM(CASE
WHEN EXTRACT(YEAR FROM order_date) = 1997 THEN 1 ELSE 0
END) AS orders_97,
SUM(CASE
WHEN EXTRACT(YEAR FROM order_date) = 1998 THEN 1 ELSE 0
END) AS orders_98;
SELECT orders_years FROM northwind.orders
GROUP BY customer_id
ORDER BY customer_id;
解决方案
from 子句在错误的位置
CREATE TABLE orders (customer_id int, order_date date)
INSERT INTO orders VALUES (1, '1997-01-01'), (2, '1998-01-01')
CREATE tABLE orders_years SELECT customer_id , SUM(CASE WHEN EXTRACT(YEAR FROM order_date) = 1996 THEN 1 ELSE 0 END) AS orders_96 , SUM(CASE WHEN EXTRACT(YEAR FROM order_date) = 1997 THEN 1 ELSE 0 END) AS orders_97 , SUM(CASE WHEN EXTRACT(YEAR FROM order_date) = 1998 THEN 1 ELSE 0 END) AS orders_98 FROM orders GROUP BY customer_id ORDER BY customer_id;;
SELECT * FROM orders_years
客户 ID | 订单_96 | 订单_97 | 订单_98 ----------: | --------: | --------: | --------: 1 | 0 | 1 | 0 2 | 0 | 0 | 1
db<>在这里摆弄
推荐阅读
- c# - 在这里,我正在尝试使用 Xero 和 .net 获取特定员工的所有数据
- python - 如何检查网站中是否存在Specifc txt并保存链接-python?
- etherpad - 在 iframe 中调用 Etherpad 的正确格式是什么
- react-native - 如何禁用状态栏旋转
- pdf - 以书面形式将超链接添加到现有 PDF 文件中
- assembly - 'ret' 指令在不同 UEFI 实现上的行为是否不同?
- python - python搜索json以获取嵌套键值并获取路径
- flutter - 如何在按下按钮时下载 Flutter Web 应用程序?
- visual-studio-code - VSCode 在启动时打开一个非默认终端
- json - 是否可以将 json 文件上传到谷歌驱动器并通过共享链接将其提取到 Flutter 中?