sql - 我不明白什么是聚合函数以及它如何应用于我的查询
问题描述
我被困在这个任务上,我不明白为什么当我包含city
and时我的查询不输出数据grade
。这是问题:
显示每个客户的总购买量,包括客户的姓名、城市和等级。
我的回答是:
SELECT cust_name,city,grade,SUM(purch_amt)
FROM customer, orders
GROUP BY cust_name
WHERE customer.cust_id = orders.customer_id;
这显示一个错误,说
您的查询不包含作为聚合函数的一部分的指定表达式“城市”。
解决方案
切勿在FROM
子句中使用逗号。 始终使用正确的、明确的、标准的、可读的JOIN
语法:
SELECT c.cust_name, c.city, c.grade, SUM(o.purch_amt)
FROM customer c JOIN
orders o
on c.cust_id = o.customer_id
GROUP BY c.cust_name, c.city, c.grade;
请注意,我添加了表别名,因此查询更易于编写和阅读。此外,这些 GROUP BY
列与SELECT
.
推荐阅读
- node.js - 查看 BIM 360 和 Fusion Models_Forge 教程
- docker - 无法在 docker for windows 中提供 sysctl 选项
- bash - “Bash@3”到底是什么意思?
- apache - mod_rewrite 快速且低资源的方式来阻塞请求
- outlook - 使用自定义日期格式自动填充 Outlook 主题
- parsing - SAS:解析字符串/字符值以查找多个分隔符
- azure - Terraform azurerm_eventgrid_event_subscription 动态模块
- c# - 我收到一个错误,对象不包含 WndProc 的定义(即 base.WndProc)
- flutter - 如何在颤动中格式化行?
- time-series - KL散度计算使用经验分布