首页 > 解决方案 > 如何分离这些值?

问题描述

我一直在尝试这样做大约 2 个小时,我的大脑快要爆炸了。我有一张桌子DEPARTMENTS和一列,TOTAL_ROOMS但每个DEPARTAMENT都有自己的房间大小,但我不知道如何显示每个部门的总房间。

它应该看起来像这样

DEPARTMENT NAME ||  TOTAL DEPARTMENTS || TOTAL DEPARTMENTS WITH ONE ROOM || TOTAL DEPARTMENTS WITH TWO ROOMS || TOTAL DEPARTMENTS WITH THREE ROOMS

EXAMPLE A       ||          10        ||          5                      ||           3                      ||             2

EXAMPLE B       ||           8        ||          2                      ||           4                      ||             2

我试过使用WHERE, IN,DISTINCT函数,但我不是很专业这样做(我还在学习):/这就是我所做的,关于房间大小的列名是TOTAL_ROOMS,我正在尝试SUMROOM一个有“1 个房间大小”,然后是SUM每个ROOM具有“2 个房间大小”的房间并显示结果:/

SELECT TOWER.EDI_NAME_TOWER AS "DEPARTMENT NAME",
COUNT(DEPARTAMENT.NRO_DEPARTAMENT) AS "TOTAL DEPARTMENTS"
FROM DEPARTAMENT
JOIN TOWER 
ON DEPARTAMENT.ID_TOWER= TOWER.ID_TOWER
GROUP BY TOWER.EDI_NAME_TOWER;

标签: mysqlsql

解决方案


感谢您的回答,并对延误表示歉意。@P.Salmon 你给了我一个想法,但我试过了,我什至失败了……这就是我需要展示的

图片

这是我的代码

SELECT EDIFICIO.EDI_NOMBRE_EDIFICIO AS "NOMBRE EDIFICIO", 
COUNT(DEPARTAMENTO.NRO_DEPARTAMENTO) AS "TOTAL DEPTOS",
SUM(TOTAL_DORMITORIOS) AS "TOTAL DEPTOS 1 DORMITORIO", -- fix
COUNT(TOTAL_DORMITORIOS) AS "TOTAL DEPTOS 2 DORMITORIO", -- fix
COUNT(TOTAL_DORMITORIOS) AS "TOTAL DEPTOS 3 DORMITORIO", -- fix
COUNT(TOTAL_DORMITORIOS) AS "TOTAL DEPTOS 4 DORMITORIO", -- fix
COUNT(TOTAL_DORMITORIOS) AS "TOTAL DEPTOS 5 DORMITORIO" -- fix
FROM DEPARTAMENTO
JOIN EDIFICIO ON DEPARTAMENTO.ID_EDIFICIO= EDIFICIO.ID_EDIFICIO
GROUP BY EDIFICIO.EDI_NOMBRE_EDIFICIO
ORDER BY EDI_NOMBRE_EDIFICIO;

我很确定可以使用 SUM 来完成!我正在尝试这个,但我不知道如何对每个值求和并显示每个部门的最终结果

SELECT ID_EDIFICIO, NRO_DEPARTAMENTO, TOTAL_DORMITORIOS
FROM DEPARTAMENTO
WHERE TOTAL_DORMITORIOS IN (1,2,3,4,5);

编辑----谢谢 P.Salmon 我刚刚找到了代码

SUM(CASE WHEN TOTAL_DORMITORIOS = '1' THEN 1 ELSE 0 END) AS "TOTAL DEPTOS 1 DORMITORIO",

每个部门每个房间的总和!


推荐阅读