sql - 在 SQL Server 中根据 ID 查找数字的平均值
问题描述
假设有两个表,Customer
并且Limit
。
Customer
具有以下列:
CustomerId (PK)
Name
并Limit
有这些列:
LimitId (PK)
Limitvalue
CustomerId (FK)
这是我的示例数据:
顾客
CustomerId Name
----------------------
1 xyz
2 abc
3 uio
限制
LimitValue CustomerId
-------------------------
35303000 1
0 1
3 1
0 2
225140000 2
3 2
现在当我运行这个查询
select a.Limitvalue, b.CustomerId
from limit a
left join Customer b on a.CustomerId = b.CustomerId
它将返回如下数据:
这里第一列是限制值,第二列是 customerid。如您所见,一个客户 ID 有多个限制值。我想编写一个查询,向我显示所有限制值与其特定 ID 的平均值。
我尝试添加 avg 函数。这里的左连接应该可以完成工作,但它不起作用。任何人都可以通过生成一些与此类似的示例数据并编写其查询来帮助我,以便我理解这个概念吗?我会很感激的。
解决方案
group by b.CustomerId
这,不是吗?
你需要具体说明数据库应该如何工作,所以你告诉它“通过分组”来计算平均值,如果你不尝试在整个表上创建 AVG
MS SQL Server 2017 架构设置:
结果:
| CustomerId | Name |
|------------|------|
| 1 | bob |
| 2 | jean |
结果:
| LimitId | Limitvalue | CustomerId |
|---------|------------|------------|
| 1 | 0 | 1 |
| 2 | 10 | 1 |
| 3 | 100 | 2 |
查询 3:
select
avg(a.Limitvalue),
b.CustomerId
from limit a
left join Customer b
on a.CustomerId= b.CustomerId
group by b.CustomerId
结果:
| | CustomerId |
|-----|------------|
| 5 | 1 |
| 100 | 2 |
推荐阅读
- laravel - Cron 作业无法使用 Nanobox 处理 Lumen
- spring-boot - 从 Kafka 读取时数据库连接丢失
- django - 自定义字段/强制更改密码
- sql - “SQL 命令未正确结束” - 插入语句
- three.js - Determine base line performance before running? - ThreeJS
- javascript - 在哪里存储身份验证令牌(前端)以及如何将其放入多个端点的 http 标头中?
- python - 如何操作内置的类型提示
- c# - 基础连接已关闭。无法使用 HTTP.sys 运行 Asp.Net core 2.1 web api 应用程序?
- python - 如何生成RGB图像的颜色直方图?
- r - 如何用空列表初始化 data.table 列并循环它?