mysql - 返回计数作为附加列
问题描述
我对 MySQL 有点陌生,但我不太清楚如何做到这一点:基本上,我有两张表:一张是公司表,一张是位置表。位置表具有公司的外键,因此公司可以有多个位置。我有一个简单的选择查询,它返回公司 ID 和位置 ID,如下所示:
SELECT location.id as location_id, company.id as company_id FROM company
INNER JOIN location ON (location.company_id = company.id);
我想知道是否有办法将位置数量也作为额外的列返回。它会返回如下内容:
number_of_locations | company_id | location_id
2 | 1 | 1
2 | 1 | 2
1 | 2 | 3
2 | 4 | 5
2 | 4 | 6
谢谢!
解决方案
只需使用窗口函数:
select t.*, count(*) over (partition by company_id) as number_of_locations
from t;
推荐阅读
- python - 组合框绑定 - 管理数据
- java - 使用 RDF4J 将查询从更新查询转换为构造查询的最简单方法是什么?
- node.js - 从节点连接到 mongodb 数据库时缺少架构错误
- webpack - 为什么 webpack 在 'graceful-fs' 中的 'fs' 遇到问题?
- bash - 使用 wget 通过重定向 POST 表单登录凭据
- grpc - Envoy 代理不会将我的 gRPC 请求转换为 HTTP1.1 请求 - 使用反向过滤桥
- javascript - 从平面列表中删除项目
- google-chrome-extension - Chrome 扩展清单 V3 远程托管代码
- java - 春天的依赖不满足
- performance - Apache Ignite CollisionSpi 配置