Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >对内连接中的每一行进行计数

对内连接中的每一行进行计数
EN

Stack Overflow用户
提问于 2021-11-06 12:22:26
回答 1查看 29关注 0票数 1

我有几个表的数据从一个网页的请求。问题是,我做了一些内部连接来合并来自请求表中的外键的数据,但我想添加一个列,该列统计发送请求的办公室总共拥有的各个设备。

下面是我的代码,可以更好地理解我的要求。

我的问题是:

代码语言:javascript
运行
AI代码解释
复制
SELECT realiza_soli.*, oficina.id_lugar, oficina.desc_lugar,
tipo_equipamiento.nom_tipo FROM realiza_soli
INNER JOIN usuario
ON realiza_soli.fk_user = usuario.id_user
INNER JOIN tipo_equipamiento
ON realiza_soli.fk_tipo = tipo_equipamiento.id_tipo
INNER JOIN oficina
ON usuario.fk_ofic = oficina.id_lugar
AND realiza_soli.estado_soli = 'Pendiente Info'
ORDER BY realiza_soli.id_soli ASC;

生成的表是这样的:

代码语言:javascript
运行
AI代码解释
复制
+---------+-------------+----------------------+----------------+----------------+----------------+---------+---------+----------+------------+----------+
| id_soli | titulo_soli | desc_soli            | estado_soli    | fecha_ini_soli | fecha_fin_soli | fk_tipo | fk_user | id_lugar | desc_lugar | nom_tipo |
+---------+-------------+----------------------+----------------+----------------+----------------+---------+---------+----------+------------+----------+
|       1 | Solicitud 1 | Descripción          | Pendiente Info | 2020-01-01     | NULL           |       1 |       4 |       10 | Oficina 10 | Monitor  |
|      13 | 25 Monitor  | Dame mmmmmmmaaaaaaas | Pendiente Info | 2021-11-05     | NULL           |       1 |       5 |        5 | Oficina 5  | Monitor  |
+---------+-------------+----------------------+----------------+----------------+----------------+---------+---------+----------+------------+----------+

问题是,我想在“oficina”表的基础上向每一行添加一个计数,从表“equipamiento”中计算它有多少设备。

这是我的“装备”表:

代码语言:javascript
运行
AI代码解释
复制
+----------+------------+----------+-----------------+-------------+------------+-------------+--------------+-----------+---------+----------+---------+---------+
| id_equip | fecha_adq  | garantia | desc_equip      | marca_equip | tipo       | lugar_equip | estado_equip | fk_estado | fk_tipo | fk_marca | fk_ofic | fk_prov |
+----------+------------+----------+-----------------+-------------+------------+-------------+--------------+-----------+---------+----------+---------+---------+
|        1 | 2020-01-01 |       24 | Teclado         | Kolke       | Componente | Oficina 5   | Instalado    |         4 |      21 |        3 |       5 |       1 |
|        2 | 2020-02-02 |       12 | Tarjeta Gráfica | NVIDIA      | Componente | Oficina 3   | Instalado    |         4 |       6 |        7 |       3 |       2 |
|        3 | 2020-03-03 |        9 | Memoria RAM     | ADATA       | Componente | NULL        | Stock        |         2 |       7 |       26 |    NULL |    NULL |
|        4 | 2020-04-04 |       10 | Tarjeta de Red  | Realtek     | Componente | Oficina 2   | Instalado    |         4 |       5 |       20 |       2 |       3 |
|        5 | 2020-01-01 |       12 | Monitor         | Samsung     | Componente | Oficina 5   | Instalado    |         4 |       1 |       22 |       5 |       3 |
+----------+------------+----------+-----------------+-------------+------------+-------------+--------------+-----------+---------+----------+---------+---------+

正如您所看到的,'equipamiento‘表有'fk_ofic’列,它引用了'oficina‘表:

代码语言:javascript
运行
AI代码解释
复制
+----------+------------+-------------+-----------------+--------------+--------------+-----------+--------+----------+
| id_lugar | desc_lugar | grupo_lugar | dir_lugar       | depart_lugar | ciudad_lugar | tel_lugar | fk_dep | fk_grupo |
+----------+------------+-------------+-----------------+--------------+--------------+-----------+--------+----------+
|        1 | Oficina 1  | Oficina     | Calle Random 1  | Montevideo   | Montevideo   |  94132471 |      1 |        5 |
|        2 | Oficina 2  | Oficina     | Calle Random 2  | Montevideo   | Montevideo   |  91356985 |      1 |        5 |
|        3 | Oficina 3  | Oficina     | Calle Random 3  | Montevideo   | Montevideo   |  92358985 |      1 |        5 |
|        4 | Oficina 4  | Oficina     | Calle Random 4  | Montevideo   | Montevideo   |  95355685 |      1 |        5 |
|        5 | Oficina 5  | Oficina     | Calle Random 5  | Montevideo   | Montevideo   |  97356990 |      1 |        5 |
|        6 | Oficina 6  | Oficina     | Calle Random 6  | Montevideo   | Montevideo   |  99344985 |      1 |        5 |
|        7 | Oficina 7  | Oficina     | Calle Random 7  | Montevideo   | Montevideo   |  91234567 |      1 |        5 |
|        8 | Oficina 8  | Director    | Calle Random 8  | Montevideo   | Montevideo   |  91234567 |      1 |        1 |
|        9 | Oficina 9  | Informática | Calle Random 9  | Montevideo   | Montevideo   |  91234567 |      1 |        2 |
|       10 | Oficina 10 | SubB        | Calle Random 10 | Montevideo   | Montevideo   |  91234567 |      1 |        4 |
|       11 | Oficina 11 | Compras     | Calle Random 11 | Montevideo   | Montevideo   |  91234567 |      1 |        6 |
|       12 | Oficina 12 | Compras     | Calle Random 12 | Montevideo   | Montevideo   |  91234567 |      1 |        6 |
+----------+------------+-------------+-----------------+--------------+--------------+-----------+--------+----------+

如果我在这两个表之间进行内部连接,你可以看到每个办公室都安装了什么设备:

代码语言:javascript
运行
AI代码解释
复制
+----------+-----------------+----------+------------+
| id_equip | desc_equip      | id_lugar | desc_lugar |
+----------+-----------------+----------+------------+
|        1 | Teclado         |        5 | Oficina 5  |
|        2 | Tarjeta Gráfica |        3 | Oficina 3  |
|        4 | Tarjeta de Red  |        2 | Oficina 2  |
|        5 | Monitor         |        5 | Oficina 5  |
+----------+-----------------+----------+------------+

因此,两个组件安装在一个office中,Office5中,一个在ofice 2中,一个在ofice 3中。基于此信息,我想为每个office添加一列total_equipment。下面是想要的结果:

代码语言:javascript
运行
AI代码解释
复制
+---------+-------------+----------------------+----------------+----------------+----------------+---------+---------+----------+------------+----------+--------------+
| id_soli | titulo_soli | desc_soli            | estado_soli    | fecha_ini_soli | fecha_fin_soli | fk_tipo | fk_user | id_lugar | desc_lugar | nom_tipo | total_equip |
+---------+-------------+----------------------+----------------+----------------+----------------+---------+---------+----------+------------+----------+--------------+
|       1 | Solicitud 1 | Descripción          | Pendiente Info | 2020-01-01     | NULL           |       1 |       4 |       10 | Oficina 10 | Monitor  |           0 |
|      13 | 25 Monitor  | Dame mmmmmmmaaaaaaas | Pendiente Info | 2021-11-05     | NULL           |       1 |       5 |        5 | Oficina 5  | Monitor  |           2 |
+---------+-------------+----------------------+----------------+----------------+----------------+---------+---------+----------+------------+----------+--------------+

这是因为第一个请求属于安装了0个设备的办公室10,而第二个请求属于安装了2个设备的办公室5。

如果我的解释很糟糕,我很抱歉,但我不能用另一种方式解释它。希望有人能帮上忙。如果你对我的代码有任何疑问,我可以解释。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-11-06 13:24:01

当我正确理解您的描述时,这应该是可行的:

代码语言:javascript
运行
AI代码解释
复制
SELECT 
   realiza_soli.*, 
   oficina.id_lugar, 
   oficina.desc_lugar,
   tipo_equipamiento.nom_tipo,
   (SELECT COUNT(*) FROM equipamiento WHERE equipamiento.fk_ofic = oficina.id_lugar) as total_equip
FROM realiza_soli
INNER JOIN usuario ON realiza_soli.fk_user = usuario.id_user
INNER JOIN tipo_equipamiento ON realiza_soli.fk_tipo = tipo_equipamiento.id_tipo
INNER JOIN oficina ON usuario.fk_ofic = oficina.id_lugar
                  AND realiza_soli.estado_soli = 'Pendiente Info'
ORDER BY realiza_soli.id_soli ASC;
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69867610

复制
相关文章
如何批量对每一行或者每一列进行排序?
先上效果图。 (一) 批量针对每一行排序 1. 把每一行转换成列表 函数:Table.ToRows 2. 针对每一个行生成的列表进行排序 函数:List.Transform,List.Sort 3.
逍遥之
2020/03/23
3.1K0
Shell脚本循环读取文件中的每一行
While循环中read命令从标准输入中读取一行,并将内容保存到变量line中。在这里,-r选项保证读入的内容是原始的内容,意味着反斜杠转义的行为不会发生。输入重定向操作符< file打开并读取文件file,然后将它作为read命令的标准输入。
卡尔曼和玻尔兹曼谁曼
2019/01/22
5.7K0
Git : 每一行命令都算数
为了说明我们日常开发中执行的一系列Git命令的作用是什么,我们需要了解Git的工作区域的概念,几乎每一个常见的Git命令操作都可以通过工作区域来解释。
sowhat1412
2022/09/20
2860
Git : 每一行命令都算数
每敲一行代码,需要测试1000次!!!
此前Oracle 惨遭亚马逊、Salesforce 弃用,究其根本原因,不是因为亚马逊等企业为了省钱,而是因为 Oracle 数据库逐渐满足不了他们业务的发展需求。
用户5224393
2019/09/17
6290
每敲一行代码,需要测试1000次!!!
MDK C++中对内联的极度优化
先来看看我们SmartIRQ的具体实现 // 智能IRQ,初始化时备份,销毁时还原 class SmartIRQ { public: force_inline SmartIRQ(bool enable = false) { _state = __get_PRIMASK(); if(enable) __enable_irq(); else __disable_irq(); } fo
大石头
2018/01/09
9850
JS中对内存的一些了解
具体查看详细解释, 对理解基础知识点还是很有帮助的. 例如: js的赋值运算顺序永远都是从右往左的,但是.是优先级最高的运算符.
全栈程序员站长
2021/06/16
3730
在文件每一行开头增加字符串
首先,使用vim 打开某txt文件,输入冒号,并输入%s/^/,之后输入要添加的字符串即可
DoubleV
2022/03/25
1.1K0
Python:使用Counter进行计数
    计数统计就是统计某一项出现的次数。实际应用中很多需求需要用到这个模型。比如测试样本中某一指出现的次数、日志分析中某一消息出现的频率等等‘这种类似的需求有很多实现方法。下面就列举几条。
py3study
2020/01/08
1.6K0
LeetCode 2133. 检查是否每一行每一列都包含全部整数
对一个大小为 n x n 的矩阵而言,如果其每一行和每一列都包含从 1 到 n 的 全部 整数(含 1 和 n),则认为该矩阵是一个 有效 矩阵。
Michael阿明
2022/03/10
4520
LeetCode 2133. 检查是否每一行每一列都包含全部整数
idea中能查看代码每一行最后修改人和文件提交人的插件
dea中查看每行代码最后一个修改的人 鼠标放在哪行,哪行后面就会显示最后一个修改本行的人名字 插件 Intellij IDEA插件显示Git每个文件最后提交时间提交人
botkenni
2022/09/07
12.1K0
idea中能查看代码每一行最后修改人和文件提交人的插件
记录php提取文本每一行转换为数组
德宏大魔王
2023/08/08
1840
针对内网的信息搜集
信息收集(Information Gathering),信息收集是指通过各种方式获取所需要的信息,在整个渗透测试环节中,信息搜集是整个渗透过程中最为重要的一环,信息搜集可占据整个渗透测试80%左右的工作量,同样的如果尽可能搜集更多的信息,对于后期的渗透工作是非常有帮助的,本章将针对内网(域)环境进行信息的搜集工作,以作为学习笔记收录。
王瑞MVP
2022/12/28
9960
wc 统计已过时,cloc 每一行代码都有效
我们通常用代码量来评判一个程序员技术的高低或一个项目的大小,阅读新项目源码时,也需要了解其代码量,心里有个预期。
程序员荒生
2022/07/14
4210
对大文件字符进行计数
但是当文件过大时,会报错,显示空间不足: sort: write failed: /tmp/sortbDyE0W: No space left on device
生信编程日常
2020/10/10
6340
pandas中基于范围条件进行表连接
❝本文完整示例代码及文件已上传至我的Github仓库https://github.com/CNFeffery/PythonPracticalSkills ❞
朱卫军 AI Python
2023/09/04
2770
pandas中基于范围条件进行表连接
谈谈Kotlin:Kotlin每一行代码都有返回值
?:+let 实现的 if-else? 这周在网上冲浪的时候,看到了这么一个讨论:“Elvis运算符与return组合的语句,在return前增加逻辑,如何写得优雅?”,里面提到一个「使用let语法糖
Kkkiro
2019/09/20
9780
C#_对内存的操作
最近一直不务正,老打算用C#写个外挂出来。 这方面对C#来说是个弱项,但并不表示无法做到。 下面写个简单的例子,和大家交流一下。 以windows中的扫雷为例,比如说读取雷的数量。 1.首先导入API(对底层的操作都要用API):
zls365
2021/03/16
7780
CSS中的计数器
     <p>Place the flour in a large bowl, make a well in the centre and pour in the milk and eggs. Give the liquid mixture a quick whisk before incorporating the flour. Continue to whisk until you have a smooth batter.</p>
大江小浪
2018/07/25
1.3K0
Python中的计数 - Counter类
在很多场景中经常会用到统计计数的需求,比如在实现 kNN 算法时统计 k 个标签值的个数,进而找出标签个数最多的标签值作为最终 kNN 算法的预测结果。Python内建的 collections 集合模块中的 Counter 类能够简洁、高效的实现统计计数。
触摸壹缕阳光
2020/07/22
2.2K0
2021-08-13:给定一个每一行有序、每一列也有序,整体可
2021-08-13:给定一个每一行有序、每一列也有序,整体可能无序的二维数组 ,在给定一个正数k,返回二维数组中,最小的第k个数。
福大大架构师每日一题
2021/08/13
3460
2021-08-13:给定一个每一行有序、每一列也有序,整体可

相似问题

连接并计数每一行中的元素数?

10

使用r对每一行进行条件计数

22

获取下一行中的每一行计数值并进行计算。

11

mysql -对远程表中每一行的匹配总数进行计数

13

报表中每一行值的计数

13
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文